通过AS3中的字符串访问属性
|
我有一个创建了一段时间的引擎,该引擎根据XML数据将对象加载到容器中。 XML的一个非常简单的示例如下:
<level>
<object cname=\"enemies.Robot\">
<pos x=\"200\" y=\"400\" layer=\"mobiles\" />
</object>
<object cname=\"Player\">
<pos x=\"12\" y=\"89\" layer=\"mobiles\" />
</object>
</level>
我有一个类Environment,它具有方法loadLevel(data:XML),我通过该方法解析XML,然后该函数在XML中运行,找到所有对象节点,并使用getDefinitionByName确定要基于object。@ cname创建的对象。 。
从这里开始,我必须像这样基于XML手动定义每个属性。
obj.x = xml.pos.@x;
obj.y = xml.pos.@y;
等等
我想知道是否存在用于基于String设置属性的内置方法。我的意思是这样的:
var mc:MovieClip = new MovieClip();
mc.someInbuiltFunctionThatSetsAProperty(\"alpha\", 0.5);
这样,我可以将XML更改为:
<object cname=\"Player\">
<props>
<x>200</x>
<y>221</y>
<alpha>7834</alpha>
<health>Something</health>
<power>3</power>
</props>
</object>
并遍历所有道具的孩子,以使我的所有属性都处于运行状态。
我知道是否创建对象并在其中设置属性,如下所示:
var obj:Object =
{
var1: \"hello\",
var2: \"there\",
name: \"marty\"
};
然后可以使用using5ѭ循环遍历名称/值,如下所示:
var i:String;
for(i in obj)
{
trace(i + \": \" + obj[i]);
}
/**
* Output:
* var1: hello
* var2: there
* name: marty
*/
也许有类似的东西吗?
当然有一种方法,这是一个使用String标识属性的示例:
var ar:Array = [new MovieClip(), new MovieClip()];
ar.sortOn(\"alpha\", Array.ASCENDING);
因此,仅是让我的问题更切合实际:我希望能够获取和设置可以使用字符串识别的属性。
没有找到相关结果
已邀请:
2 个回复
凄挡
表示法:
炬卤遁蝎变
和
方法。我认为这就是您要问的问题。 如果不是这样,您可能希望研究动态类的行为,该动态类使您可以动态地向对象添加变量。