Pour commencer, on va s'intéresser à la notion d'
écouteurs.
On essaye... et on se plante
Vous vous souvenez probablement des
événements ? Les événements permettent d'exécuter du code selon une action, comme le clic de la souris par exemple :
Code : Actionscript | _root.onMouseDown = function() {
trace('bouton gauche de la souris abaissé');
}
|
Eh bien dans cet exemple,
onMouseDown est un événement.
Curieux comme tous les Zéros, vous allez vous jeter sur l'aide de Flash et voir s'il existe un événement
onkeydown pour la classe
MovieClip.
Et là : miracle ! Il existe bien un événement
onKeyDown.
Tout con(tent)s, vous vous empressez de rentrer ce genre de code dans votre animation :
Code : Actionscript | _root.onKeyDown = function() {
trace('Une touche du clavier a été titillée');
}
|
Et là, enfer et damnation, ça ne fonctionne pas.
Donc : retour à l'aide de Flash, et là on voit que ça se complique, car, pour que ce code fonctionne, il faut que le clip ait le
focus et pleins d'autres propriétés (chiantes).
Bref, la dernière ligne de l'aide résume bien la situation :
Citation : Aide de FlashPar conséquent, vous devez utiliser Key.onKeyDown dans la plupart des cas.
Voilà la solution, la classe
Key
Les écouteurs de Key
L'objet
Key ne possède pas d'
événements comme les
MovieClip, mais des
écouteurs. La différence primordiale, c'est que là où un clip ne peut avoir qu'un seul et unique événement, alors que l'objet
Key peut avoir un nombre infini d'écouteurs, qui seront tous appelés lors d'une action sur le clavier.
Passons à la réalisation du classique "Hello World" :
Code : Actionscript | var ecouteur_clavier = new Object(); // On crée un écouteur, qui est en fait un objet quelconque pour l'instant
ecouteur_clavier.onKeyDown = function() { // On écrit une fonction onKeyDown pour cet objet quelconque
trace("Hello World");
};
Key.addListener(ecouteur_clavier); // On indique que cet objet n'est pas quelconque, mais un écouteur clavier !
|
Et maintenant que vous avez compris comment ça marchait, vérifions que ce que j'ai dit précédemment sur les écouteurs est vrai (parce que même le prof peut se planter) :
Code : Actionscript | var ecouteur_clavier:Object = new Object();
var ecouteur_clavier_bis:Object = new Object();
ecouteur_clavier.onKeyDown = function() {
trace("Hello World");
};
ecouteur_clavier_bis.onKeyDown = function() {
trace("Hello World (bis)");
};
Key.addListener(ecouteur_clavier);
Key.addListener(ecouteur_clavier_bis);
|
Et là miracle ! La fenêtre de sortie nous affiche :
Citation : Sortie
Hello World
Hello World (bis)
Les deux écouteurs ont donc été appelés !
Key.onKeyUp
Nous avons déjà vu l'écouteur d'événement
Key.onKeyDown, pas besoin donc de le représenter.
Mais il possède aussi son opposé :
Key.onKeyUp, qui se déclenche lorsqu'une touche est relâchée.
On l'utilisera comme ceci :
Code : Actionscript | var ecouteur_clavier:Object = new Object();
ecouteur_clavier.onKeyUp = function() {
trace('Touche relevée');
};
Key.addListener(ecouteur_clavier);
|
Rien de bien compliqué !
Pour finir sur les écouteurs, il faut que je vous parle de la fonction
Key.removeListener(mon_ecouteur);.
Comme son nom l'indique, elle permet de retirer un écouteur. Pas besoin de vous donner d'exemple, de toute façon on l'utilise presque jamais.
