当按住按钮时,如何防止多次触发函数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);
答案 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;
}
}
]);