2011-01-06 19 views
1

flashを使用してvarsの名前を動的に変更することは可能ですか?つまり、たとえばmyvarのような1つのルート名を持つ10個の変数を作成してから、myvar0、myvar1、myvar2などのように数字を増やします。 方法:AS3で動的varの名前が変更される

は私が前にしながら、私はこのコードでAS2でこれをachived:

for (i = 0; i < 5; i++) 
{ 
    var mc = _root.attachMovie("my_square", "my_square_"+i, i); 
    mc._x = i * 50; 
} 

しかし、AS3とVARコピーする必要がある今、イムこれは、次のとおりです。できるが、中に生成方法

var caja1:HTMLTextBlock = new HTMLTextBlock(); 

FOR、caja1、caja2、caja3およびsp。

ありがとうございました!

答えて

1

これを達成するための非常に簡単でクリーンな方法は、配列を作成することだと思います。

var caja:Array = new Array(); 

for (i = 0; i < 5; i++) 
{ 
    caja[i] = new HTMLTextBlock(); 
} 

配列の最初のエントリは0から1(つまりcaja [0])で始まることを覚えておいてください。

希望します。

5

Hey Domingo、 私はしばらくの間AS2を終了しましたので、これがあなたが探しているものなら絶対には分かりませんが、私はそうだと思います。

var myObjects:Object = {}; 

for(var i:Number = 0; i<10; i++) 
{ 
    myObjects["caja"+i]=new HTMLTextBlock(); 
    addChild(myObjects["caja"+i]); //if using Flex 4 containers use addElement(myObjects["caja"+i]); 
    myObjects["caja"+i].x=i*50; //assuming here container has an absolute layout 
} 

何あなたは(ドット演算子)myObject.somethingまたは(連想配列?)myObjectといういずれかを使用することができAS3でプロパティを解決するための動的な性質を持つ新しいオブジェクトを作成して、ここでやっているだろう[ "何か"]と同じように動作します。

+0

解決策を書き直してください。 – DomingoSL

+0

@DomingoSL。投稿されたコードは有効なAS3のようです。試してみましたか? –

+0

これは有効ですAS3はそれを撃つ – shaunhusain

関連する問題