我怎样才能遍历类实例的所有变量?它似乎适用于常规对象......
编辑:这样做=)
var test:anyClass=new anyClass();
var someObject:Object={val1:"object string",val2:111,val3:new Date()};
var xmlList:XMLList=describeType(anyClass)..variable;
for each(var key:* in someObject)
trace(String(key));
for each(var item:XML in xmlList)
trace(String(test[item.@name]));
Run Code Online (Sandbox Code Playgroud)
输出:对象字符串111 Thu Nov 8 11:19:27 GMT-0700 2012 class string 222 Thu Nov 8 11:19:27 GMT-0700 2012
public class anyClass
{
public var val1:String="class string";
public var val2:int=222;
public var val3:Date=new Date();
}
Run Code Online (Sandbox Code Playgroud)
我认为最简单的方法就是使用 flash.utils.describeType()
这将返回一个描述类的所有详细信息的XML文档,然后您可以使用普通E4X进行攻击.这是我测试过的一个例子:
import flash.display.Sprite;
import flash.utils.describeType;
var test:String = "TEST";
function DescribeTypeExample():void {
var child:Sprite = new Sprite();
var description:XML = describeType(this);
var variables:XMLList = description..variable;
for each(var variable:XML in variables) {
trace("VARIABLE: " + variable.@name);
trace("VALUE: " + this[variable.@name]);
}
}
this.DescribeTypeExample();
// Output:
// VARIABLE: test
// VALUE: TEST
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3534 次 |
| 最近记录: |