2016-08-10 8 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; 
     } 
    } 
]);