Déclenchement multiple de l'evenement keydown non voulu

cs_Miniak Messages postés 3 Date d'inscription samedi 15 mai 2010 Statut Membre Dernière intervention 21 juin 2010 - 15 mai 2010 à 11:30
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010 - 24 juin 2010 à 04:14
Bonjour tout le monde.

Je me permet de vous écrire car je me retrouve dans une impasse, et je me demande si le comportement que je désire obtenir est possible.

Je m'explique:
J'ai réalisé une sorte de jeu en javascript grâce à Canvas et le plugin JQuery(pour la gestion des evenements).

J'ai capté l'évènement onkeydown pour lancer le déplacement du personnage et l'évenement onkeyup pour aréter son déplacement.

Le problème:
L'évenement onkeydown est déclenché. Puis après une ou deux secondes, celui ci est redéclenché indéfiniment tant que je ne relache pas la touche.
Le problème, est que cela fait énormément ralentir mon application d'effectuer le traitement aussi souvent.

Pour voir ce dont je veux parler, maintenez une touche appuyé dans le champ de texte de cette page, vous verrez ce dont je veux parler.

Merci d'avance à ceux qui s'intéresserons à mon problème.

Est-il possible de contourner ce comportement?

4 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
15 mai 2010 à 18:00
essai avec onkeypress
0
cs_Miniak Messages postés 3 Date d'inscription samedi 15 mai 2010 Statut Membre Dernière intervention 21 juin 2010
15 mai 2010 à 19:32
Merci pour la réponse.

L'evenement keypress est déclenché à l'identique.

Après quelques réflexions, je me dit que cela risque d'être dur pour corriger cela en javascript sans faire de bidouillage, j'ai trouvé quelques jeux fonctionnant au clavier et mais je n'en ai pas encore trouvé qui fonctionnent correctement à ce niveau là.

Sur tous les systèmes d'exploitations, il me semble qu'il est possible de définir les paramètres de répétition des touches lorsqu'elles restent appuyées.

Mon problème n'est toujours pas résolu, mais je pense que je vais abandonner le traitement de cette façon pour l'instant (au cas ou quelqu'un aurait une solution).
0
cs_Miniak Messages postés 3 Date d'inscription samedi 15 mai 2010 Statut Membre Dernière intervention 21 juin 2010
21 juin 2010 à 18:53
Bon finalement après une longue pose, un nouveau test, le problème est corrigé sur mon poste.

Peut être qu'une mise à jour de Linux ou firefox à corrigé le problème.

En tout cas, sujet résolu.
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
24 juin 2010 à 04:14
Stoppe l'evenement !
exemple:

function keyPressContinue(e) {
switch(e.keyCode) {
case Event.KEY_LEFT:
Event.stop(e);
break;
}
}
0
Rejoignez-nous