La gestion des événements
CHAPITRE 3
63
Détecter la pression sur une touche du clavier
Fichier de référence : Chapitre3/evenement6.fla
Vous allez être surpris par la ressemblance du code nécessaire à la détection de la pression
sur une touche du clavier avec celui que nous avons présenté pour la détection des clics
de souris.
function tournerRoue(evt:KeyboardEvent) {
roue_inst.rotation+=3;
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, tournerRoue);
Le type figurant en paramètre de la fonction tournerRoue() change pour devenir KeyboardEvent
et, de ce fait, la constante KEY_DOWN vient remplacer celles que nous avions utilisées
(MOUSE_UP, CLICK, etc.). De plus, la fonction addEventListener() est associée à l’instance
stage et non plus à btDeclencheur ou roue_inst.
Pour l’instant, l’événement KeybordEvent traduit la pression d’une touche du clavier, mais
ne permet pas encore de déterminer le code de la touche pressée.
C’est justement le cas dans l’exemple suivant, où la roue tourne dans le horaire ou antihoraire selon que l’on appuie la touche flèche droite ou flèche gauche du clavier.
Fichier de référence : Chapitre3/evenement7.fla
function avancer(evt:KeyboardEvent) {
if(evt.keyCode==37) carre.rotation = carre.rotation-3;
if(evt.keyCode==39) carre.rotation = carre.rotation+3;
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,avancer);
Script dans un fichier AS
Fichiers de référence : Chapitre3/evenement7as.fla et mainclavier.as
Le script ci-dessous se trouve dans le fichier texte nommé mainclavier.as. Il s’agit de la
classe du document evenement7as.fla.
package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.display.MovieClip;
public class mainclavier extends Sprite {
public function mainclavier() {
stage.addEventListener(KeyboardEvent.KEY_DOWN,avancer);
}
private function avancer(evt:KeyboardEvent) {
Précédent

- 91/426

Suivant