2010-10-11 11 views
2

Je suis en train de faire une application javascript qui a besoin de cette caractéristique particulière:Capturer des frappes multiples en javascript

Chaque fois que l'utilisateur appuie sur une des touches fléchées, il doit agir acording à la direction clé.

Et si l'utilisateur appuie sur une touche, maintenez-la enfoncée et appuyez sur une seconde, seule l'action de la seconde doit être exécutée jusqu'à ce qu'elle soit relâchée. Et si le premier reste pressé, son action doit être exécutée à nouveau.

Le problème est que lorsque vous appuyez sur la deuxième touche, aucun autre événement (sauf la touche enfoncée) de la première touche n'est déclenché, même après avoir relâché la seconde.

est ici plus ou moins ce que je fais: http://jsbin.com/amajo4

Il n'a pas besoin de travailler dans IE, bien que le soutien IE8 pourrait être cool, IE7 et IE6 sont discarted :) Mais completly cela doit être fait en javascript, pas de flash ou silverlight.

Merci!

Répondre

4

Vous pouvez utiliser setInterval pour exécuter votre gestionnaire chaque (par exemple) 400 ms, puis maintenir une pile de touches enfoncées en manipulant le clavier et le clavier.

+0

Cela semble être le chemin à parcourir =) – alcuadrado