1

本質的にこれは私が達成したいことですが、このようには機能しません。解決策はありますか: - 問題は、新しいオブジェクトに動的に名前を付けられないことです... ??? 髪を引っ張る。

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

1 に答える 1

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);
    }
}     
于 2010-04-20T04:03:31.370 に答える