用for in可以枚举动态对象的变量。as3中,object是原生的Dynamic class,它的实例可以在运行任意添加变量。如下:
var obj:Object = new Object();
obj.a = "Schotten Totten";
obj.b = "Taj Majal";
obj.c = "Durche die Wuste";
a,b,c是动态变量,可以用for..in检举:
for (var p:String in obj) {
ta1.text += p + ":" + obj[p] + "\n";
}
以上运行结果如下:

for in result
b:Taj Majal
a:Schotten Totten
c:Durche die Wuste也可以用for each检举对象,这时不能得到变量的名称,只能得到变量的值:
for each(var p:String in obj) {
ta1.text += p + "\n";
}
用户自定义一个类时,加上dynamic修饰符,即可动态添加变量并检举之。
如果要检举非动态对象的public元素,可以使用flash.utils.describeType(object)。当object为实例时,返回非静态元素;而当object参数为类定义(非类实例)时,返回静态过元素,可以用flash.utils.getDefinitionByName("className")获得类定义。
此外还有一个方法,mx.utils.ObjectUtil.getClassInfo(object)可以返回对象的名称及属性。
几点说明:
admin#flashas.net (#为@) 联系QQ:
:40777822
浙ICP备06033001号