首次按键后暂停

时间:2010-08-12 10:52:36

标签: javascript keypress

第一次按键后有一点暂停。 这是日志:

[00.000ms] keypress   -- first keypress
[496.00ms] keypress   -- second keypress after 496 ms
[39.000ms] keypress   -- every other keypress after about 20-40 ms.
[41.000ms] keypress
[21.000ms] keypress
[39.000ms] keypress
...

因此,在第一次按键后暂停半秒,其余时间在20-40毫秒后触发。

这是获取按键的代码:

// If we're using the webkit engine, capture the keydowns
if(navigator.userAgent.indexOf("WebKit") != -1){
    window.onkeydown = onKeyPress;
} else{
    // If we're using gecko, capture the keypress
    if(navigator.userAgent.indexOf("Gecko") != -1){
        window.onkeypress = onKeyPress;
    }
}

onKeyPress函数执行的第一件事是调试输出(上面的日志中的那个)

有谁知道暂停的原因在哪里? 就像在Windows或Linux上那样; Firefox或Chrome。

1 个答案:

答案 0 :(得分:1)

我认为“真实游戏”可以访问更低端的内容,而Javascript受操作系统自动重复按键限制的约束。

我解决问题的方法是使用onKeyDownonKeyUp创建解决方法:

因此,当onKeyDown事件被触发时,请继续重复该过程,直到触发onKeyUp事件。