删除JavaScript中的keydown延迟?

jul*_*ian 5 javascript dom-events html5-canvas

好吧,当你按住键盘上的键时,第一次发射后会有1秒的延迟.
您可以继续打开记事本并按住一个键(前'x'),您会在第一次火灾后看到延迟.

但是,我正在尝试使用JavaScript在HTML5 Canvas中开发游戏,并且1秒延迟非常烦人,另外,它会阻止玩家行走动画.

那么如何删除JavaScript中的烦人延迟(没有jQuery!)?

我的keydown事件在这种模式下工作 -

document.onkeydown = getKey;
function getKey(e) {
    switch(e.keyCode) {
        case 38: // UP
            Player.PositionY--;
        break;
        case 39: // RIGHT
            Player.PositionX++;
        break;
        case 40: // DOWN
            Player.PositionY++;
        break;
        case 37: // LEFT
            Player.PositionX--;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢 :)

Jas*_*son 5

你可以开始一个事件keydown并停止它keyup

$('#mycanvas').on('keydown', function() { 
   $(document).trigger('start'); 
}); 

$('#mycanvas').on('keyup', function() { 
   $(document).trigger('stop'); 
});

$(document).on('start', startAnimation);
$(document).on('stop', stopAnimation);

function startAnimation(e) { //start something }
function stopAnimation(e) { //stop something }
Run Code Online (Sandbox Code Playgroud)

  • 这不是这个想法吗?你想摆脱延迟,对吧?如果是这种情况,请启动一个将运行到 keyup 的事件 (2认同)