Flash CS3 文档 |
|||
| ActionScript 2.0 语言参考 > ActionScript 语言元素 > 语句 > for..in 语句 | |||
for (variableIterant in object) {
statement(s);
}
迭代对象的属性或数组中的元素,并对每个属性或元素执行 statement。对象的方法不能由 for..in 动作来枚举。
有些属性不能由 for..in 动作来枚举。例如,不能枚举影片剪辑属性,例如 _x 和 _y。在外部类文件中,和实例成员不同的是,静态成员是不能枚举的。
for..in 语句迭代所迭代对象的原型链中对象的属性。首先枚举该对象的属性,接着枚举其直接原型的属性,然后枚举该原型的原型的属性,依次类推。它以反向索引顺序迭代各个属性。for..in 语句不会将相同的属性名枚举两次。如果 child 对象有原型 parent,并且两者都包含属性 prop,则对 child 调用的 for..in 语句将枚举来自 child 的 prop,而忽略 parent 对象中的该属性。
如果只执行一条语句,则用来括起要由 for..in 语句执行的语句块的花括号 ({}) 是不必要的。
如果在一个类文件(外部 AS 文件)中编写一个 for..in 循环,则实例成员对于该循环不可用,而静态成员则可用。然而,如果在一个 FLA 文件中为类的实例编写一个 for..in 循环,则实例成员在循环中可用,而静态成员不可用。
可用性:ActionScript 1.0、Flash Player 5
variableIterant:String ― 要作为迭代变量的变量的名称,迭代变量引用对象的每个属性或数组中的每个元素。
下面的示例使用 for..in 迭代对象的属性:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"};
for (var prop in myObject) {
trace("myObject."+prop+" = "+myObject[prop]);
}
//output
myObject.firstName = Tara
myObject.age = 27
myObject.city = San Francisco
下面的示例使用 for..in 迭代数组的元素:
var myArray:Array = new Array("one", "two", "three");
for (var index in myArray)
trace("myArray["+index+"] = " + myArray[index]);
// output:
myArray[2] = three
myArray[1] = two
myArray[0] = one
下面的示例将 typeof 运算符与 for..in 结合使用以迭代特定类型的子级:
for (var name in this) {
if (typeof (this[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); }
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00001323.html