for..in

可用性

Flash Player 5。

用法

for(variableIterant in object){
  statement(s); 
}

参数

variableIterant 作为迭代变量的变量的名称,迭代变量引用数组中对象或元素的每个属性。

object 要重复的对象的名称。

statement(s) 要为每次迭代执行的指令。

返回

无。

说明

语句;循环通过数组中对象或元素的属性,并为对象的每个属性执行 statement

一些属性无法用 forfor..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 动作将枚举来自 childprop,而忽略 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);
}