2016-08-10 9 views
0

Как предотвратить срабатывание функции move() несколько раз, когда я удерживаю кнопку нажатой? Я бы хотел, чтобы он срабатывал только один раз, даже если пользователь удерживает клавишу нажатой.Как сделать событие нажатия клавиши для запуска только один раз в JS

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

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; 
     } 
    } 
]);