Flash Player 5。
for(variableIterant
in
object
){statement(s);
}
variableIterant
作为迭代变量的变量的名称,迭代变量引用数组中对象或元素的每个属性。
object
要重复的对象的名称。
statement(s)
要为每次迭代执行的指令。
无。
语句;循环通过数组中对象或元素的属性,并为对象的每个属性执行 statement
。
一些属性无法用 for
或 for..in
动作进行枚举。例如,Array 类的内置方法(例如
Array.sort() 和 Array.reverse())不包括在 Array 对象的枚举中,而影片剪辑属性(如 _x
和 _y
)也不能枚举。 在外部类文件中,实例成员是不可枚举的;只有动态和静态成员是可枚举的。
for..in
语句迭代所迭代对象的原型链中对象的属性。如果 child 的原型为 parent
,则如果用 for..in
迭代 child 的属性,也将迭代 parent
的属性。
for..in
动作枚举对象原型链中的所有对象。首先枚举该对象的属性,接着枚举其直接原型的属性,然后枚举该原型的原型的属性,依次类推。for..in
动作不会将相同的属性名枚举两次。如果对象 child
具有原型 parent
,而这两个对象都包含属性 prop
,则对 child
调用的 for..in
动作将枚举来自 child
的 prop
,而忽略 parent
中的该属性。
下面的示例使用 for..in
迭代某对象的属性:
myObject = { name:'Tara', age:27, city:'San Francisco' };
for (name in myObject) {
trace ("myObject."+ name + " = " + myObject[name]);
}
此示例的输出如下所示:
myObject.name = Tara
myObject.age = 27
myObject.city = San Francisco
下面的示例将 typeof
运算符与 for..in
一起使用来迭代特定类型的 child:
for (name in my_mc) {
if (typeof (my_mc[name]) = "movieclip") {
trace ("I have a movie clip child named " + name);
}
}
下面的示例枚举影片剪辑的子级,并将每个子级发送到其各自时间轴的第 2 帧。RadioButtonGroup
影片剪辑是一个父级,它具有多个子级:_RedRadioButton_
、_GreenRadioButton_
和 _BlueRadioButton
。
for (var name in RadioButtonGroup) {
RadioButtonGroup[name].gotoAndStop(2);
}