在iframe内部的移相器,键盘输入在cavas / iframe失去焦点后停止工作

时间:2018-06-10 22:00:51

标签: javascript iframe phaser-framework

我正在开发Phaser CE游戏,该游戏支持鼠标/触控输入和键盘输入以执行各种操作。

问题是;游戏在iframe 内运行,键盘输入正常工作,直到画布失去焦点。游戏暂停哪个是正确的行为,然后我再次点击画布,游戏继续,鼠标输入仍然有效。但现在键盘输入不再起作用了。如果游戏没有在iframe中运行,这不是问题,键盘在失去焦点,暂停然后继续之后继续工作。

我是否必须使用" game.input.keyboard.addCallbacks"以外的其他内容。检查键盘输入?以下是重现此问题的最低代码。

mygame.GameState.prototype = {

    create: function() {
        this.stage.backgroundColor = "#f0f";
        this._levelindex = 0;
        // ..
        // etc.

        // game input for mouse and keyboard
        this.game.input.onDown.add(this.onGameMouseDown, this); // mouse/touch
        this.game.input.keyboard.addCallbacks(this, this.doGameKeyInput, null, null); // keyboard
        // ..
    },

    onGameMouseDown: function(evt) {
        // code.. ok works fine
    },

    doGameKeyInput: function(key) {
        var kc = key.keyCode;
        var action = 0;
        if (kc == 32) {action = 1}; // space
        if (kc == 90) {action = 2}; // Z
        if (kc == 88) {action = 3}; // X
        // etc. this works until canvas loses focus
    }
}

此外,我已创建了一个隔离并重现此问题的页面,请参阅keyboard test

0 个答案:

没有答案