是否可以在flash(AS3)中获取所有成员变量?

时间:2010-04-15 22:48:41

标签: actionscript-3 reflection instance-variables member-variables

我正在尝试抓取AS3中的所有成员变量,然后foreach一个我想以各种方式处理它。我需要名称然后如果它是某种类型的集合我也想循环通过该集合。我试图以一种有点自定义的方式进行基本序列化。 谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想要序列化一个对象,您肯定会想要使用JSON。

JSON基本上将对象转换为字符串,反之亦然,使用encode()/ serialize()和decode()/ deserialize()函数。

AS3中有一个内置的JSON类,它非常易于使用。

一旦你做了类似的事情:

var myObject:Object = {};
var myObjectString:String = JSON.serialize(myObject);

获取字符串后,您可以执行所有切换逻辑来操作每个不同的变量,并通过deserialize()函数将其转换回对象。

答案 1 :(得分:0)

您可以使用describeType。这将有关对象的信息作为XML返回。默认情况下,您可以迭代对象中的公共属性。你可以试试像......

// the object to iterate over
var someObj:Object = {};

for(var prop:String in someObj) {
    // check to see if its something you want to iterate over
    if (someObj[prop] is Array) {
        // iterator over the property here
    }
}

我希望这能回答你的问题。