Tutorial Flash : Gestion du pavé directionnel en AS3
Introductions
Informations
Documents
Résultat

Déplacer un objet avec le pavé directionnel n'est pas très difficile à gérer en AS3.
Et avec ce tutorial cela n'aura plus de secrets pour vous. 
L'accés aux documents est exclusivement réservé aux membres.
1. Déclaration des variables
Créez un nouveau document et ouvrez le panneau ActionScript.Nous allons commencer par déclarer les variables globales de ce petit script.
Afin de posséder un objet à déplacer avec le pavé directionnel, je déclare un "Sprite" mais vous pouvez très bien utiliser autre chose (image, movieClip, ...)
Les 4 booléen déclarés ensuite permettront d'indiquer au script l'état des touches du pavé directionnel.
Notez les lignes suivantes dans le panneau AS :
Code-source : AS3
var rectangle:Sprite = new Sprite();
var droite:Boolean = new Boolean ();
var haut:Boolean = new Boolean ();
var gauche:Boolean = new Boolean ();
var bas:Boolean = new Boolean ();
2. Fonctions liées au déplacement
Nous allons maintenant écrire 3 fonctions qui permettront de gérer le déplacement de l'objet.Dans la première fonction servira à modifier la position de l'objet en abscisse et en ordonnés (x et y) :
Code-source : AS3
function Move()
{
if (droite) rectangle.x++;
if (haut) rectangle.y--;
if (gauche) rectangle.x--;
if (bas) rectangle.y++;
}
Les 2 autres fonction permettront de déterminer l'état des touches du pavé directionnel (enfoncée ou relâchée) :
Code-source : AS3
function toucheDown(evt:KeyboardEvent)
{
if (evt.keyCode == Keyboard.UP) haut=true;
if (evt.keyCode == Keyboard.RIGHT) droite=true;
if (evt.keyCode == Keyboard.LEFT) gauche=true;
if (evt.keyCode == Keyboard.DOWN) bas=true;
}
function toucheUp(evt:KeyboardEvent)
{
if (evt.keyCode == Keyboard.UP) haut=false;
if (evt.keyCode == Keyboard.RIGHT) droite=false;
if (evt.keyCode == Keyboard.LEFT) gauche=false;
if (evt.keyCode == Keyboard.DOWN) bas=false;
}
3. Fonction d'initialisation du script
Dans le but de faire quelque chose de propre je déclare ici une fonction d'initialisation du script qui me permettra de définir les paramètres de l'objet ("Sprite") :Code-source : AS3
function initScript():void
{
rectangle.graphics.beginFill(0x0000FF); // Remplissage du rectangle avec du bleu
rectangle.graphics.drawRect(100, 100, 50, 50); // Dessin du rectangle
this.addChild(rectangle);
stage.stageFocusRect = false; // Le rectangle jaune du focus est supprimé pour tous les objets
stage.focus = rectangle; // Focus sur le rectangle pour qu'il puisse être actif
rectangle.addEventListener(KeyboardEvent.KEY_DOWN, toucheDown);
rectangle.addEventListener(KeyboardEvent.KEY_UP, toucheUp);
setInterval(Move, 5); // Appel de la fonction Move()
}
4. Lancer le script
Il ne reste plus qu'à lancer le script en appelant la fonction initScript() écrite au chapitre précédent :Code-source : AS3
initScript();
stop();
Vous pouvez ensuite tester votre animation (Ctrl+Entrée).
Si la fluidité du déplacement de l'objet ne vous conviens pas modifiez le nombre d'images par secondes de l'animation ainsi que l'intervalle de temps entre chaque appel de la fonction Move() (second paramètre de la fonction setInterval())
Commentaires
Aucun commentaire enregistré



