查看: 3444|回复: 5

[有事请教] 请教在菜单中追加页面之后返回键没有用处的问题

[复制链接]
梦石
0
星屑
2117
在线时间
1461 小时
注册时间
2009-2-6
回帖
197

开拓者

发表于 2018-7-6 16:51:19 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我尝试在RMMV中默认的菜单界面中将【整队】选项改成了【笔记】,之后写了一个简单的笔记界面(目前该界面只有一个框体和测试用的文本),并且可以通过在菜单中点击该选项进入到笔记界面,但是进入该界面之后点击返回键无法回到菜单。
想请问各位大佬如何解决返回键没有用的问题,我在场景之中加入了setHandler的cancel设置,不过依旧不行,下面是代码
[pre lang="javascript"]function Window_NoteList()
{
        this.initialize.apply(this, arguments);
}
Window_NoteList.prototype = Object.create(Window_Selectable.prototype);
//创建构造器
Window_NoteList.prototype.constructor = Window_NoteList;
//初始化
Window_NoteList.prototype.initialize = function(x, y, width, height)
{
        Window_Selectable.prototype.initialize.call(this, x, y, width, height);
        this.refresh();
};
//*窗体的字体设置
Window_NoteList.prototype.standardFontSize = function() {        return 36;        }
//刷新
Window_NoteList.prototype.refresh = function()
{
        this.contents.clear();
        this.drawText("测试文字1", 48, 0);
        this.drawText("测试文字2", 48, 48);
};[/pre]
[pre lang="javascript"]//=============================================================================
// 绘制场景
//=============================================================================
function Scene_CakeNote()
{
        this.initialize.apply(this, arguments);
}
Scene_CakeNote.prototype = Object.create(Scene_MenuBase.prototype);
//-------------------------------------------------------------
//构造器
Scene_CakeNote.prototype.constructor = Scene_CakeNote;
//初始化
Scene_CakeNote.prototype.initialize = function()
{
    Scene_MenuBase.prototype.initialize.call(this);
};
Scene_CakeNote.prototype.create = function()
{
        //在这个界面创建这个场景中的各种窗口
        Scene_MenuBase.prototype.create.call(this);
        this.createNoteListWindow();
};
Scene_CakeNote.prototype.exitScene = function()
{
    alert("cancel!");
    this.popScene();
};
Scene_CakeNote.prototype.createNoteListWindow = function()
{
        //创建场景中左上方显示笔记列表文字的窗口
        this._NoteListWindow = new Window_NoteList(0, 0, Graphics.boxWidth, Graphics.boxHeight);
    this.addWindow(this._NoteListWindow);
    this._NoteListWindow.setHandler('cancel', this.exitScene.bind(this));
};
//=============================================================================
// Scene_Menu
//=============================================================================
Scene_Menu.prototype.Scene_Old_CreateCommandWindow = Scene_Menu.prototype.createCommandWindow;
Scene_Menu.prototype.createCommandWindow = function()
{
        this.Scene_Old_CreateCommandWindow();
        this._commandWindow.setHandler('note',      this.commandNote.bind(this));
};
Scene_Menu.prototype.commandNote = function()
{
    SceneManager.push(Scene_CakeNote);
};
//=============================================================================
// Window_MenuCommand
//=============================================================================
Window_MenuCommand.prototype.Window_old_Cake_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
Window_MenuCommand.prototype.addOriginalCommands = function()
{
        this.Window_old_Cake_addOriginalCommands();
        this.addCommand("笔记", 'note', true);
}[/pre]
梦石
0
星屑
22578
在线时间
2605 小时
注册时间
2015-7-4
回帖
917
发表于 2018-7-7 00:25:48 | 显示全部楼层
第二个文件看看33行
把“this._NoteListWindow.setHandler('cancel', this.exitScene.bind(this));”
换成“this._NoteListWindow.setHandler('cancel', this.popScene.bind(this));”试试;
不知道会不会还返不回游戏,会的话试试在42行
“this._commandWindow.setHandler('note',      this.commandNote.bind(this));”
下面加一句:
“this._commandWindow.setHandler('cancel',    this.popScene.bind(this));”

点评

要不你对调一下32行与33行位置试一下。你这是在系统文件里修改的还是写成插件的?我用插件调试怎么没效果呀!  发表于 2018-7-7 10:00
试了下还是不行。。之前exitScene测试了按cancel似乎根本没进入这个方法里面,直接用popScene也不行  发表于 2018-7-7 00:45
回复

使用道具 举报

梦石
0
星屑
2117
在线时间
1461 小时
注册时间
2009-2-6
回帖
197

开拓者

 楼主| 发表于 2018-7-7 11:34:44 | 显示全部楼层
Fan723 发表于 2018-7-7 00:25
第二个文件看看33行
把“this._NoteListWindow.setHandler('cancel', this.exitScene.bind(this));”
换成 ...

是在插件中的,开一个默认工程之后把代码复制过去菜单里面应该会多一个笔记选项,可以打开但是无法返回,我感觉有可能是返回无法找到菜单中光标对应的位置问题但也不一定,我把代码稍微改了改,直接插入插件应该就能显示出菜单中笔记选项,在整队的下面,但是还是无法返回。
  1. function Window_NoteList()
  2. {
  3.         this.initialize.apply(this, arguments);
  4. }
  5. Window_NoteList.prototype = Object.create(Window_Selectable.prototype);
  6. //创建构造器
  7. Window_NoteList.prototype.constructor = Window_NoteList;
  8. //初始化
  9. Window_NoteList.prototype.initialize = function(x, y, width, height)
  10. {
  11.         Window_Selectable.prototype.initialize.call(this, x, y, width, height);
  12.         this.refresh();
  13. };
  14. //*窗体的字体设置
  15. Window_NoteList.prototype.standardFontSize = function() {        return 36;        }
  16. //刷新
  17. Window_NoteList.prototype.refresh = function()
  18. {
  19.         this.contents.clear();
  20.         this.drawText("测试文字1", 48, 0);
  21.         this.drawText("测试文字2", 48, 48);
  22. };
  23. //=============================================================================
  24. // 绘制场景
  25. //=============================================================================
  26. function Scene_CakeNote()
  27. {
  28.         this.initialize.apply(this, arguments);
  29. }
  30. Scene_CakeNote.prototype = Object.create(Scene_MenuBase.prototype);
  31. //-------------------------------------------------------------
  32. //构造器
  33. Scene_CakeNote.prototype.constructor = Scene_CakeNote;
  34. //初始化
  35. Scene_CakeNote.prototype.initialize = function()
  36. {
  37.     Scene_MenuBase.prototype.initialize.call(this);
  38. };
  39. Scene_CakeNote.prototype.create = function()
  40. {
  41.         //在这个界面创建这个场景中的各种窗口
  42.         Scene_MenuBase.prototype.create.call(this);
  43.         this.createNoteListWindow();
  44. };
  45. Scene_CakeNote.prototype.createNoteListWindow = function()
  46. {
  47.         //创建场景中左上方显示笔记列表文字的窗口
  48.         this._NoteListWindow = new Window_NoteList(0, 0, Graphics.boxWidth, Graphics.boxHeight);
  49.     this.addWindow(this._NoteListWindow);
  50.     this._NoteListWindow.setHandler('cancel', this.popScene.bind(this));
  51. };
  52. //=============================================================================
  53. // Scene_Menu
  54. //=============================================================================
  55. Scene_Menu.prototype.Scene_Old_CreateCommandWindow = Scene_Menu.prototype.createCommandWindow;
  56. Scene_Menu.prototype.createCommandWindow = function()
  57. {
  58.         this.Scene_Old_CreateCommandWindow();
  59.         this._commandWindow.setHandler('note',      this.commandNote.bind(this));
  60. };
  61. Scene_Menu.prototype.commandNote = function()
  62. {
  63.     SceneManager.push(Scene_CakeNote);
  64. };
  65. //=============================================================================
  66. // Window_MenuCommand
  67. //=============================================================================
  68. Window_MenuCommand.prototype.Window_old_Cake_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
  69. Window_MenuCommand.prototype.addOriginalCommands = function()
  70. {
  71.         this.Window_old_Cake_addOriginalCommands();
  72.         this.addCommand("笔记", 'note', true);
  73. }
复制代码

点评

还是不行啊,我将你的代码作为插件放到新建工程里面,什么都没有出现啊。不是版本问题吧?我是1.5的。  发表于 2018-7-7 16:48
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部