基本上这就是我想要完成的任务,但它不会像这样工作。有没有解决方案: - 问题是我不能动态命名一个新对象...... ???拉我的头发。
import views.printingView;
public function initComponent(o:Array):void{
SomeObject::Array = o;
for(i=0; i <=SomeObject.length-1; i++){
'invoice'+{SomeObject[i].namedID}:printingView = new printingView();
someDisplayContainer.addChild('invoice'+{SomeObject[i].namedID});
'invoice'+{SomeObject.namedID}.publicInitFunction(SomeObject[i]);
}
}
答案 0 :(得分:2)
根据您发布的代码,根本不需要动态命名的变量。相同的代码可以简化为:
import views.printingView;
public function initComponent(o:Array):void{
for each(var item:Object in o)
{
var v:printingView = new printingView();
someDisplayContainer.addChild(v);
v.publicInitFunction(item);
}
}
如果由于某种原因你真的需要动态命名的变量,你可以这样做。这假设当前对象被声明为动态。
import views.printingView;
public function initComponent(o:Array):void{
SomeObject::Array = o;
for each(var item:Object in o)
{
var name:String = 'invoice' + item.namedID;
this[name] = new printingView();
someDisplayContainer.addChild(this[name]);
this[name].publicInitFunction(item);
}
}