0

ライブラリ内のオブジェクトをステージに挿入できるようにする必要があります。それらはすべて適切にインポートされた異なる .jpg であり、GIS_1 GIS_2 などの AS リンケージ名が付いています。

外部変数に応じて一度に 1 つずつインポートする関数を実行しようとしています。

例:

var GIS_Image = new GIS_#();       //the "#" needs to change as depending on a counter
addChild(GIS_Image);

しかし、私が必要とするのは、「GIS_1」という名前を変数として入れることができるので、新しい画像が必要になるたびに変更できるようにすることです。私の最初の考えは、次の行に沿って文字列を作成することでした:

var counter:int = 2;
var test:String = ("GIS_"+count);
var circle = new test();

ただし、テキストが構成する文字列にアクセスするのではなく、オブジェクト名のテストを探しているため、機能しません。

何か案は?

ありがとう!

4

1 に答える 1

1

チェックアウトしてくださいgetDefinitionByName。これにより、String で識別される特定のクラスのインスタンスを作成できます。

package {
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.utils.getDefinitionByName;

    public class GetDefinitionByNameExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 80;

        public function GetDefinitionByNameExample() {
            var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
            var instance:Object = new ClassReference();
            instance.graphics.beginFill(bgColor);
            instance.graphics.drawRect(0, 0, size, size);
            instance.graphics.endFill();
            addChild(DisplayObject(instance));
        }
    }
}

したがって、シンボルの名前を渡して、必要に応じてその新しいインスタンスを作成できます。

于 2013-10-04T17:51:09.490 に答える