1

私はまだ 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 を呼び出す必要はありません。追加の手順なしで直接アクセスできるように、これらの子を設定するにはどうすればよいですか?

4

1 に答える 1

0

角かっこを使用します。

Trace(Game["I_tile_1_3"].x);
于 2010-04-26T10:53:31.533 に答える