Project1

标题: 请教一下关于setHandler方法的一个问题 [打印本页]

作者: gogocake    时间: 2018-8-4 10:43
标题: 请教一下关于setHandler方法的一个问题
我目前在写一个合成系统,在Scene方法内通过setHandler来对窗口进行是否活动的切换,目前遇到的问题是如果setHandler里面的指令是'ok'的话,则无法执行其后面写的对应的方法,但如果换成其他按钮如'cancel','pageup'等等,则一切正常,请教各位大佬有没有遇到过这种问题以及如何解决orz
作者: 芯☆淡茹水    时间: 2018-8-4 13:27
你就添加两个函数啊,一个 ok;  一个 cancel

Test.prototype.createXxWindow= function() {
   this._xx = new Xx();
   this._xx .setHandler('确定',  this.ok.bind(this));
   this._xx .setHandler('取消',  this.cancel .bind(this));
};
Test.prototype.ok= function() {
   //script
};
Test.prototype.cancel = function() {
    //script
};
作者: gogocake    时间: 2018-8-4 15:22
芯☆淡茹水 发表于 2018-8-4 13:27
你就添加两个函数啊,一个 ok;  一个 cancel

Test.prototype.createXxWindow= function() {

我就是用的这样的方式然后无法进入到对应的方法,我的部分代码如下:
  1. Scene_CakeRecipe.prototype.createRecipeListWindow = function()
  2. {
  3.         this._recipeListWindow = new Window_RecipeItemList(0, 152, 240, 472);
  4.         this._recipeListWindow.setHelpWindow(this._helpWindow);
  5.         this._recipeListWindow.setHandler('ok',     this.isSureToRecipe.bind(this));
  6.         this._recipeListWindow.setHandler('cancel', this.onItemCancel.bind(this));
  7.         this.addWindow(this._recipeListWindow);
  8.         this._categoryWindow.setItemWindow(this._recipeListWindow);
  9. };
  10. Scene_CakeRecipe.prototype.isSureToRecipe = function()
  11. {
  12.         alert("is sure to recipe!");
  13.     this._recipeSelectWindow.activate();
  14.     this._recipeSelectWindow.selectLast();
  15. };
复制代码

在下面这一行
  1. this._recipeListWindow.setHandler('ok',     this.isSureToRecipe.bind(this));
复制代码

如果我将'ok'更改为其他的如'pageup'、'pagedown'等指令,都可以进入下面的isSureToRecipe方法中并执行alert语句,但如果不改变'ok'继续使用的话,测试后根本无法进入该方法,不知道为何,我这些个窗口均继承自Window_Selectable,也不知道是不是少添加了什么方法之类的orz
作者: yang1zhi    时间: 2018-8-4 15:42
本帖最后由 yang1zhi 于 2018-8-4 15:45 编辑

这个'ok'还是'cancel'
除了确定和取消的这两个,还可以用commd的指令的。
this.addCommand(显示文字,    '指令');

this._recipeListWindow.setHandler('指令',     this.isSureToRecipe.bind(this));


'ok'没反应是不是你修改了相关的脚本
作者: gogocake    时间: 2018-8-4 18:04
yang1zhi 发表于 2018-8-4 15:42
这个'ok'还是'cancel'
除了确定和取消的这两个,还可以用commd的指令的。
this.addCommand(显示文字,    ' ...

请问一下用Window_Selectable继承的话可以实现addCommand这种方式的命令添加吗,还是一定得继承Window_Command才行,我目前打算设置一个窗体上面显示合成和取消两个命令,并通过点击对应的命令来执行对应的方法避免这个问题,但似乎继承Window_Selectable好像不行?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1