2016-08-10 1 views
0

Comment puis-je empêcher la fonction move() de se déclencher plusieurs fois lorsque je maintiens le bouton enfoncé? Je voudrais qu'il tire une seule fois même si l'utilisateur tient la clé enfoncée.Comment faire qu'un événement de pression de touche se déclenche une seule fois dans 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); 

Répondre

-1

KeyPress library de dmaurolizer donne un contrôle précis sur tous les événements de clavier. Vous fournissez des fonctions de rappel pour les événements. L'événement keydown envoie un paramètre optionnel isRepeat afin que vous puissiez ignorer les répétitions automatiques. Voici un exemple d'utilisation de cette fonctionnalité pour le contrôle de poussée dans un jeu vidéo:

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