AS3 ループ処理で変数宣言の定義?
ああ、なるほどね、そういう考えもあるな、、
という質問をいただいたのでご紹介
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]);
}どうでしょうか?
この記事を読んだ方は下記の記事も読んでいます。
コメント・トラックバック
コメントをどうぞ

