私はまだ AS3 の初心者なので、ご容赦ください。
ボード上のタイルをインスタンス化するループを作成しました。次の例では、「Gametiles」は、MovieClip を拡張するクラスであるクラス「Tile」のオブジェクトを含む配列です。「ゲーム」はフラッシュ開発環境でステージに追加したMCです。
for(var i:uint=0;i < Gametiles.length;i++){
var pulledTile = Gametiles[i];
var tilename:String = "I_Tile_" + pulledTile.grid_y + "_" + pulledTile.grid_x;
var createdTile = new InteractiveTile();
pulledTile.addAnims(createdTile);
Game.addChildAt(pulledTile, 0);
Game.getChildAt(0).name = tilename;
}
上記のコードは機能しますが、難しい問題があります。次のようなことをした場合:
trace(Game.I_Tile_1_3.x);
「TypeError: エラー #1010: 用語が定義されておらず、プロパティがありません」というメッセージが表示されます。ただし、次の方法でこれらの子にアクセスできます。
var testing = Game.getChildByName("I_Tile_1_3")
trace(testing.x);
ただし、この方法は少し面倒です。これらのプロパティやメソッドを操作するたびに、var を作成して getChildByName を呼び出す必要はありません。追加の手順なしで直接アクセスできるように、これらの子を設定するにはどうすればよいですか?