Gestionnaire keyboardevent (touche multiple)

Description

Bonjour à tous,

Quel développeur ActionScript 3 utilisant les évènements clavier (KeyboardEvent) ne s'est jamais posé la question suivante : "Comment faire si mon action résulte d'une combinaison de touche ?"

Voici donc un gestionnaire d'appui de touche multiple sous forme d'évènement.

La mise en place est légèrement différente qu'un évènement standards puis celui-ci n'est pas inclus par défaut sur un DisplayObject.

Si quelqu'un à une solution à apporter pour faciliter un peu plus l'ajout du gestionnaire (qui est ma foi déjà pas très lourd d'utilisation) je suis preneur.

Source / Exemple :


Le fichier zip contient deux classes, l'une pour la récupération multiple des touches appuyés, l'autre pour l'évènement associé.

Voici un exemple d'implémentation :

import flash.text.TextField;
import flash.text.TextFieldAutoSize;

var myText:TextField = new TextField();
myText.autoSize = TextFieldAutoSize.LEFT;
myText.x = myText.y = 10;
addChild(myText);

var myKeyboardProcess:KeyboardProcess = new KeyboardProcess(stage);
stage.addEventListener(KeyboardProcessEvent.KEY_DOWN, myEvent);

function myEvent(Evt:KeyboardProcessEvent):void {
	myText.text = Evt.toString().replace(new RegExp(" ","g"),"\n\t")+"\n"+Evt.target;
}

Conclusion :


Amélioration possible : Employer la classe Vector plutôt que la classe Array pour stocker la liste des codes touches appuyées.
La mise en place s'avère cependant peut être plus lourde par rapport au gain de performance gagné (aussi infime soit-il).

L'utilisation de ces deux classes est libre à condition de laisser le nom de l'auteur (comme indiquer dans chacune des classes).

En cas d'utilisation à des fins commerciale, merci de m'en avertir

Cette source est également présente sur mon blog:
http://www.osteres.com/blog/archives/69

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.