onKeyDown事件未触发

时间:2015-07-18 18:17:31

标签: javascript html5-canvas

我正在使用javascript在Html5画布中制作一个小浏览器游戏。 我正在使用onKeyUp和onKeyDown事件来获取键盘输入:

function onKeyDown(evt) {
    if (evt.keyCode == 32) {
        spaceKey = true;
    }

    if (evt.keyCode == 38) {
        arrowUpKey = true;
    }

    if (evt.keyCode == 37) {
        arrowLeftKey = true;
    }

    if (evt.keyCode == 39) {
        arrowRightKey = true;
    }
}

function onKeyUp(evt) {
    if (evt.keyCode == 32) {
        spaceKey = false;
    }
    if (evt.keyCode == 38) {
        arrowUpKey = false;
    }

    if (evt.keyCode == 37) {
        arrowLeftKey = false;
    }

    if (evt.keyCode == 39) {
        arrowRightKey = false;
    }
}

我需要箭头键(左,右和上)和空格键。通常会检测到输入,但有一个特定情况不起作用:如果按下向左和向上的箭头(玩家同时跳跃并向左移动),那么由于某些奇怪的原因,任何空格键输入都不是检测

在我显示的事件以外的代码中,我永远不会将任何新值赋给变量' spaceKey'。所以我假设有另一个原因,这个特定的键组合不起作用,或者可能只有更好/更安全的方式来处理用户输入?

1 个答案:

答案 0 :(得分:1)

为了消除键盘的实际问题,请查看此链接,了解键盘为何不注册多键按键的说明

http://www.microsoft.com/appliedsciences/antighostingexplained.mspx

您也可以使用该演示来测试键盘