Project1

标题: 写了一个界面 [打印本页]

作者: xiaoxustudio    时间: 2021-8-17 13:12
标题: 写了一个界面
我写了一个界面,但载入之后就无法退出了,是缺什么退出代码吗
作者: MH-Pride    时间: 2021-8-17 13:42
你少了个关闭窗口
例如我这个 一个确认另外一个是关闭 你看看你有没有关闭的那个
关闭
itemStandbySelectionWindow.setHandler('cancel', this.onItemStandbySelectionCancel.bind(this));
确认
itemStandbySelectionWindow.setHandler('ok', this.onItemStandbySelection.bind(this));

Scene_Battle.prototype.createItemStandbySelectionWindow = function () {
    const rect = this.standyWindowRect();
    const itemStandbySelectionWindow = new Window_Standby_Actor(rect);
    itemStandbySelectionWindow.setHandler('cancel', this.onItemStandbySelectionCancel.bind(this));
    itemStandbySelectionWindow.setHandler('ok', this.onItemStandbySelection.bind(this));
    this.addWindow(itemStandbySelectionWindow);
    this._itemStandbySelectionWindow = itemStandbySelectionWindow;
};
作者: xiaoxustudio    时间: 2021-8-17 14:07
MH-Pride 发表于 2021-8-17 13:42
你少了个关闭窗口
例如我这个 一个确认另外一个是关闭 你看看你有没有关闭的那个
关闭

写了
this._statusWindow.setHandler("cancel", this.onjjseeCancel.bind(this));

    Scene_Menu.prototype.onjjseeCancel = function () {
        this._statusWindow.deselect();
        this._commandWindow.activate();
    };

作者: xiaoxustudio    时间: 2021-8-17 14:09
MH-Pride 发表于 2021-8-17 13:42
你少了个关闭窗口
例如我这个 一个确认另外一个是关闭 你看看你有没有关闭的那个
关闭

我看其他菜单界面都可以使用鼠标右键什么的退出窗口,我的就不行
作者: MH-Pride    时间: 2021-8-17 22:21
itemStandbySelectionWindow.setHandler('cancel', this.onItemStandbySelectionCancel.bind(this));
Scene_Battle.prototype.onItemStandbySelectionCancel = function () {
        this._itemStandbySelectionWindow.close();
        this._actorCommandWindow.activate()
}
那个当然不行 你少了关闭或者隐藏
this._statusWindow.deselect(); 这个是取消选择
Scene_Menu.prototype.onjjseeCancel = function () {
        this._statusWindow.deselect();
      //加上关闭
       this._statusWindow.close()
       //或者隐藏都行
       this._statusWindow.hide()
        this._commandWindow.activate();
    };
作者: xiaoxustudio    时间: 2021-8-17 22:58
MH-Pride 发表于 2021-8-17 22:21
itemStandbySelectionWindow.setHandler('cancel', this.onItemStandbySelectionCancel.bind(this));
Scene ...

但还是关闭不了,不知道为啥
作者: xiaoxustudio    时间: 2021-8-17 23:05
MH-Pride 发表于 2021-8-17 22:21
itemStandbySelectionWindow.setHandler('cancel', this.onItemStandbySelectionCancel.bind(this));
Scene ...

关是可以关了,但他没有返回菜单界面,我是在菜单界面新增的一个选项,点那个选项后会进入我写的界面,但是关了之后,窗口是关了,但没有返回菜单界面
作者: xiaoxustudio    时间: 2021-8-17 23:23
MH-Pride 发表于 2021-8-17 22:21
itemStandbySelectionWindow.setHandler('cancel', this.onItemStandbySelectionCancel.bind(this));
Scene ...

改成功了,看了一下其他界面的代码,发现只要改成这样就可以了   
this._statusWindow.setHandler("cancel", this.popScene.bind(this));
作者: MH-Pride    时间: 2021-8-17 23:43
this.popScene 是返回到游戏界面
我那个是关闭当前界面,如果是多个界面层popScene会全部退出
我看到你有this._commandWindow.activate();以为你还有一个界面
作者: xiaoxustudio    时间: 2021-8-18 00:32
MH-Pride 发表于 2021-8-17 23:43
this.popScene 是返回到游戏界面
我那个是关闭当前界面,如果是多个界面层popScene会全部退出
我看到你有th ...

那  this._commandWindow.activate();这个是啥意思
作者: MH-Pride    时间: 2021-8-18 00:54
this._commandWindow.activate() 激活这个窗口commandWindow

例如你有多层窗口 当我要关闭当前窗口然后返回到上一层窗口就要激活上一层窗口
一般你要打开下一层窗口就把上面一层窗口关闭和关闭激活状态 this._commandWindow.deactivate()关闭激活状态 然后打开当前窗口
如果你要取消当前窗口就需要关闭当前窗口后激活上层状态 this._commandWindow.activate()

就是说你有一个选择的窗口(第一层窗口)可以选择角色,然后你按进去角色后弹出确认按钮(第二层窗口)。如果你不禁用第一层窗口就算第二层窗口打开第一层还是激活状态的,你移动鼠标还是可以在第一层选人。所以一般会在打开第二层后关闭第一层的激活,关闭就反之。
你不是关闭有个this._statusWindow.deselect();关闭选择吗 一样道理









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