如何使一个按键事件只在JS

时间:2016-08-10 21:16:55

标签: javascript eventhandler onkeypress

当按住按钮时,如何防止多次触发函数move()?即使用户按住键,我也只想开一次。

function pushbtn(event)
{
    var pressBtn = event.keyCode;
    //Move to the right
    if(pressBtn==100)
    {
        move(1933.67);


    }
    //Move to the left
    else if(pressBtn==113)
    {
        move(-1933.67);

    }
}

document.addEventListener('keypress', pushbtn);
document.addEventListener('keyup', releasebtn);

1 个答案:

答案 0 :(得分:-1)

dmaurolizer的KeyPress library可以很好地控制所有键盘事件。您为事件提供回调函数。 keydown事件会发送一个可选的isRepeat参数,因此您可以忽略自动重复。以下是使用该功能进行视频游戏中推力控制的示例:

var my_combos = listener.register_many([
    {
        "keys"          : "up",
        "on_keydown"    : function(e, num, isRepeat) {
            if (isRepeat) return ;
            thrust = 0.1;
        },
        "on_keyup"      : function() {
            thrust = 0;
        }
    }
]);