Retour à la page d'accueil

Flash 8: Déplacer un clip devant ou derrière un autre

Auteur: Jérôme Forget. Publié le 13 juillet 2006.

Lorsqu'on travaille avec plusieurs clips, boutons et/ou champs de texte sur la scène, il est important de garder en tête leur ordre d'empilement. Cela permet à un clip d'apparaître derrière un bouton, ou un champ de texte devant un clip. Dans l'environnement de travail dans Flash, il est possible de modifier cet ordre d'empilement en allant dans le menu Modification -> Réorganisation -> Vers l'avant/Vers l'arrière.

Mais lorsqu'on a besoin de modifier cet ordre durant le déroulement de l'animation, on a besoin d'ActionScript et de la méhode swapDepths(). Par exemple, pour créer un casse-tête où le morceau sélectionné par la souris passe au-dessus des autres, nous devons avoir recours à la méthode swapDepths().

Pour comprendre cette méthode facile, il faut regarder de plus près comment fonctionne l'ordre d'empilement dans Flash. Flash utilise des calques dans son environnement de développement, afin de faciliter la vie aux animateurs et aux développeurs. Cependant, quand l'animation est publiée chaque élément se voit assigner un étage unique sous forme d'un numéro. L'étage détermine l'ordre d'empilement des clips. Une instance assigné sur un étage supérieur apparaîtra par dessus une instance sur un étage inférieur.

On peut utiliser swapDepths() pour échanger les étages de deux instances. On doit invoqué la méthode sur une des deux instances, et passer une référence à la seconde instance en paramètre. Par exemple, pour échanger les étages de deux clips mCarre et mRectangle, le code ressemble à ceci:

mCarre.swapDepths(mRectangle);

On aurait pu aussi bien écrire:

mRectangle.swapDepths(mCarre);

Le résultat est le même - deux clips échangent leur position dans l'ordre d'empilement.

Il est fréquent que l'on doive modifier l'étage d'un seul clip dans l'animation. Un exemple de cela a été mentionné tout à l'heure, pour s'assurer qu'un clip sélectionné par la souris passe par dessus tous les autres. Ou encore, dans une animation du mouvement des planètes autour du Soleil, pour s'assurer que les planètes passent bien derrière le Soleil.

Dans ce cas, on peut utiliser la méthode getNextHighestDepth() et entrer une valeur numérique comme paramètre à swapDepths(), comme ceci:

mCarre.swapDepths(200); mCarre.swapDepths(_root.getNextHighestDepth());

On fait ainsi passer le clip à un étage donné, ou à l'étage le plus élevé.

À propos | Formation | Ressources | Exercices
© 2004-2007, Jérôme Forget (ajouter au carnet d'adresses). Certains droits réservés.
Sous licence Creative Commons «Paternité - Partage des Conditions Initiales à l'Identique 2.0 Canada».
 Photos : stock.xchngPolitique de confidentialitéDéclaration qualité. Valide: XHTML | CSS.