Écouter les touches du clavier

Écouter les touches du clavier - Flash/ActionScript - Programmation

Marsh Posté le 16-09-2010 à 13:33:37    

Bonsoir à tous,
 
Je souhaites "écouter" les touches du clavier de l'utilisateur de mon animation : avec les flèches du clavier, il déplace un personnage (style pacman)
 
Je fais ceci :
 

Code :
  1. stage.addEventListener(KeyboardEvent.KEY_DOWN,bouge);   //si on enfonce une touche il appelle la fonction bouge
  2. stage.addEventListener(KeyboardEvent.KEY_UP,stoppe);       //Si on la relache, il appelle la fonction stoppe


 
et dans la fonction bouge :

Code :
  1. function bougepacman(evt:KeyboardEvent):void
  2. {
  3. //Les flèches sont 37 (gauche), 38 (haut), 39 (droite) et 40 (bas)
  4.         vitesse=6;
  5. switch(evt.keyCode)
  6. {
  7.  case 37 :  pacman_mc.x-=vitesse;
  8.     break;
  9.  case 38 :  pacman_mc.y-=vitesse;
  10.     break;
  11.  case 39 :  pacman_mc.x+=vitesse;
  12.     break;
  13.  case 40 :  pacman_mc.y+=vitesse;
  14.     break;
  15. }
  16. }


 
Ca marche parfaitement, mon soucis : Quand on appuie sur la touche, il bouge de 6 (puisque vitesse=6) puis il y a une pause, puis, il bouge en continu. Cette pause varie en fonction de réglages du clavier et idem pour sa vitesse de déplacement. C'est exactement comme quand, dans un traitement de texte, on garde une touche en foncée : on à "b" une pause puis "bbbbbbbbbbbbbbbbbbbbbbbbbbbbb".
 
Y a t'il moyen de ne plus avoir cette pause et que la vitesse du personnage ne soit plus tributaire des paramètres système ?
 
Merci :)


Message édité par zezette le 16-09-2010 à 13:35:33

---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 16-09-2010 à 13:33:37   

Reply

Marsh Posté le 19-09-2010 à 11:01:56    

Il faut utiliser un écouteur enterFrame pour écouter continuellement.
 
Ou peut être la classe Timer si c'est possible.
 


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed