[k]id » AS3 ループ処理で変数宣言の定義? 

2009年5月20日

AS3 ループ処理で変数宣言の定義?

Yahoo!ブックマークに登録

1 Star2 Stars3 Stars4 Stars5 Stars (現在評価はありません。)
Loading ... Loading ...

ああ、なるほどね、そういう考えもあるな、、
という質問をいただいたのでご紹介

FlashのASに限らず、スクリプトで変数を定義する場合
まとめて一括で変数を定義したい場合に遭遇する事が多々あると思います。

例えば

var a1:String,a2:String,a3:String,a4:String,a4:String.....
みたいな感じですね。

ご質問をいただいた方はそれをforのループで一括宣言が出来ないかと
お考えになったらしいのです。
for (var i:uint = 0; i <10; i++) {
         ["var a"+i] = new String;
}
みたいなイメージですね。

なるほど、、こういう風に考えたくなる気持ちもわかります。
でも、多分、エラーが返されてしまうとおもうのです。

色々な回避方法があると思うのですが、
こんな感じでご説明さし上げました。


例はとりあえずSpriteで●を生成する例です。
var listArray:Array = [];

for (var i:uint = 0; i <20; i++) {
var tmp:Sprite = new Sprite();
listArray.push( tmp );
listArray[i].graphics.beginFill(Math.random() * 0x1000000);
listArray[i].graphics.drawCircle(0, 0, 10);
listArray[i].graphics.endFill();
}



取り出すときは
for eachとかforとかで

for (var i:uint = 0; i <listArray.length; i++) {
listArray[i].x = i+10;
addChild(listArray[i]);
}
みたいな感じで
どうでしょうか?


Comments

Powered by Facebook Comments

この記事を読んだ方は下記も投稿も読んでいます

コメント・トラックバック

トラックバック

コメントする

Filed under: Flash Tips
タグ: ,