我正在开发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。