我有一个关于在Actionscript 3.0中传递属性的问题。我目前的设置就是这个。
ballObject(name:String,imageID:String,category:String,price:Number,description:String,priority:String)
我从XML文件中获取这些值。你可以看到它看起来很糟糕。我想知道是否有另一种方法可以做到这一点,哪种设计方法会更好?我也在寻找一种更有活力的方法。现在,如果我想添加一个新值,它似乎很难编码。
编辑: 哦,是的,我正在用BallManager类加载这些对象,这就是我传递参数的原因。让ballObjects自己从XML获取属性或保持ballManager传递参数会更聪明吗?
答案 0 :(得分:1)
您可以将XML字符串或对象传递给构造函数,然后检索类构造函数中的属性。由于您已经拥有XML,因此可以使用该XML或XML解析对象的一部分作为属性的来源。然后,如果需要另一个属性,只需在构造函数中添加一行代码。
public function BallObject(source:Object) {
this.name=source.name;
this.imageID=source.imageID;
// etc
}
使用解析的XML对象调用它,假设您在XML中有一个对象数组,并通过XML构造函数解析它,因此您的XML对象有一个名为balls
的数组。然后你这样做:
for (var i:int=0;i<xml.balls.length;i++) {
var ball:BallObject=new BallObject(xml.balls[i]);
// process ball
}