Flash Lite 2 |
|||
| Guide de référence du langage ActionScript Flash Lite 2.x > Eléments du langage ActionScript > Instructions > Instruction for..in | |||
for (variableIterant in object) { ]
statement(s);
}
Répète en boucle les propriétés d'un objet ou d'éléments de tableau, puis exécute l'instruction statement pour chaque propriété ou élément. Les méthodes d'un objet ne sont pas énumérées par l'action for..in.
Certaines propriétés ne peuvent pas être énumérées par l'action for..in. Par exemple, les propriétés de clip, telles que _x et_y, ne sont pas énumérées. Dans les fichiers de classe externes, les membres statiques ne peuvent pas être énumérés, contrairement aux membres d'occurrences.
L'instruction for..in itère sur des propriétés des objets du chaînage de prototype de l'objet itéré. Les propriétés de l'objet sont énumérées en premier, puis les propriétés de son prototype immédiat, puis les propriétés du prototype du prototype, etc. L'instruction for..in n'énumère pas le même nom de propriété deux fois. Si l'objet child comporte un prototype parent et que tous deux contiennent la propriété prop, l'instruction for..in appelée pour child énumère les propriétés prop de child, mais ignore celles de parent.
Les accolades ({}), qui servent normalement à entourer le bloc d'instructions que l'instruction for..in doit exécuter, peuvent être omises si une seule instruction doit s'exécuter.
Si vous écrivez une boucle for..in dans un fichier de classe (un fichier externe AS), les membres d'instance ne seront plus disponibles pour la boucle, contrairement aux membres statiques. Cependant, si vous écrivez une boucle for..in dans un fichier FLA pour une occurrence de la classe, les membres de l'occurrence restent disponibles, contrairement aux membres statiques.
Disponibilité : ActionScript 1.0 ; Flash Lite 2.0
variableIterant:String - Nom d'une variable devant servir d'itérant, référençant chaque propriété d'un objet ou d'un élément dans un tableau.
L'exemple suivant utilise une boucle for..in sur les propriétés d'un objet :
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"};
for (var prop in myObject) {
trace("myObject."+prop+" = "+myObject[prop]);
}
// Renvoie
myObject.firstName = Tara
myObject.age = 27
myObject.city = San Francisco
L'exemple suivant utilise une boucle for..in sur les éléments d'un tableau :
var myArray:Array = new Array("one", "two", "three");
for (var index in myArray)
trace("myArray["+index+"] = " + myArray[index]);
// Renvoie :
myArray[2] = three
myArray[1] = two
myArray[0] = one
L'exemple suivant utilise l'opérateur typeof conjointement avec for..in pour faire une itération sur un type d'enfant particulier :
for (var name in this) {
if (typeof (this[name]) == "movieclip") {
trace("I have a movie clip child named "+name);
}
}
Remarque : Si vous disposez de plusieurs clips, le code obtenu inclut leurs noms d'occurrence.
L'exemple suivant énumère les enfants d'un clip et les envoie à l'image 2 de leurs scénarios respectifs. Le clip RadioButtonGroup est un parent ayant plusieurs enfants, _RedRadioButton_, _GreenRadioButton_, et _BlueRadioButton_.
for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }