设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2465|回复: 6
打印 上一主题 下一主题

[有事请教] 请教一下关于setHandler方法的一个问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2132
在线时间
1461 小时
注册时间
2009-2-6
帖子
214

开拓者

跳转到指定楼层
1
发表于 2018-8-4 10:43:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我目前在写一个合成系统,在Scene方法内通过setHandler来对窗口进行是否活动的切换,目前遇到的问题是如果setHandler里面的指令是'ok'的话,则无法执行其后面写的对应的方法,但如果换成其他按钮如'cancel','pageup'等等,则一切正常,请教各位大佬有没有遇到过这种问题以及如何解决orz

Lv3.寻梦者

梦石
0
星屑
2132
在线时间
1461 小时
注册时间
2009-2-6
帖子
214

开拓者

5
 楼主| 发表于 2018-8-4 18:04:34 | 只看该作者
yang1zhi 发表于 2018-8-4 15:42
这个'ok'还是'cancel'
除了确定和取消的这两个,还可以用commd的指令的。
this.addCommand(显示文字,    ' ...

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

点评

那你可以建两个窗口,一个是合成和取消,一个是Window_Selectable  发表于 2018-8-4 19:17
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

4
发表于 2018-8-4 15:42:01 | 只看该作者
本帖最后由 yang1zhi 于 2018-8-4 15:45 编辑

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

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


'ok'没反应是不是你修改了相关的脚本
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2132
在线时间
1461 小时
注册时间
2009-2-6
帖子
214

开拓者

3
 楼主| 发表于 2018-8-4 15:22:02 | 只看该作者
芯☆淡茹水 发表于 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

点评

如果默认窗口的确定指令没有问题的话, 可能就是你的 Window_RecipeItemList 哪儿不对。  发表于 2018-8-4 18:03
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33493
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2018-8-4 13:27:46 | 只看该作者
你就添加两个函数啊,一个 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
};
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-29 07:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表