Flex - 如何使用变量来定义实例化对象的名称

时间:2010-04-20 03:26:46

标签: flex actionscript dynamic object custom-component

基本上这就是我想要完成的任务,但它不会像这样工作。有没有解决方案: - 问题是我不能动态命名一个新对象...... ???拉我的头发。

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]);
    }
  }

1 个答案:

答案 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);
    }
}