Les itérations : boucles for()
CHAPITRE 10
233
cadreChargeur.addEventListener(MouseEvent.MOUSE_DOWN,tournerOccurrence);
function tournerOccurrence(evt:MouseEvent) {
var sens = (evt.shiftKey ? 90 : -90);
var angleDepart:Number = evt.currentTarget.rotation;
if (mouvement == null) {
mouvement = new Tween(evt.currentTarget,"rotation",Regular.easeIn,angleDepart,
➥angleDepart+sens,0.5,true);
} else if ( ! mouvement.isPlaying) {
mouvement = new Tween(evt.currentTarget,"rotation",Regular.easeIn,angleDepart,
angleDepart+sens,0.5,true);
}
}
}
La boucle for each()
Avant d’aborder ce type de boucle, vous devez bien connaître le mécanisme et la logique
d’une boucle for().
La boucle for each() est une variante de la boucle for(), mais le principe reste le même :
répéter une action. Ce type de boucle est particulièrement adapté à la manipulation des
tableaux, des arborescences XML et des objets pour récupérer des valeurs de propriétés.
La différence avec une boucle for() porte sur les arguments placés entre parenthèses.
for each (var nomduneVariable:Type in Instance d'un objet) {
}
Plutôt que de vous expliquer théoriquement la nature et le rôle des arguments, examinons
l’exemple suivant. Nous allons créer un tableau et écrire une itération sur ses éléments,
mais agir comme si nous ne connaissions pas le nombre d’éléments qu’il contient. Pour
cela, nous allons simplement utiliser une boucle for each().
var semaine:Array = new Array("Lundi","Mardi","Mercredi","Jeudi","Vendredi",
➥"Samedi","Dimanche");
for each (var jour:String in semaine) {
trace(jour);
}
Avec ce simple exemple, nous comprenons mieux le rôle des deux paramètres de
l’instruction for each(). La variable jour sert à stocker, l’une après l’autre, toutes les
valeurs d’un objet, d’un tableau ou d’une instance XML.
Le paramètre semaine correspond au nom du tableau, de l’instance XML ou de l’objet à
parcourir. C’est le mot-clé in qui permet d’établir la liaison entre les deux. On parle alors
de parcours d’une collection.
Un problème se pose tout de même ! Vous avez remarqué que nous devions typer la
variable jour. Mais quel type faudrait-il utiliser si les valeurs de la collection à parcourir
étaient de types différents ? Vous n’auriez pas d’autre choix que d’utiliser le type * et
écrire : var jour:* in semaine.
Précédent

- 261/426

Suivant