0

このような別のオブジェクトを、すべてのコードを再度実行せずに、また 2 つの別個の MovieClip コンテナーに表示せずに追加するにはどうすればよいですか?

この BG は単純な正方形の 10px x 10px です

    private var bg:BG = new BG();
    private var myContainer:MovieClip = new MovieClip();

    public function MainClass_Test() {
        createRow_Col();
    }

    private function createRow_Col() {
        var bg:MovieClip = new BG();
        for (var i:int = 0; i < 5; i++) {
            bg[i] = new BG();
            for (var j:int = 0; j < 5; j++) {
                bg[i][j] = new BG();
                myContainer.addChild(bg[i][j]);
                bg[i][j].x = bg[i][j].width * j + j * 10;
                bg[i][j].y = bg[i][j].height*i + i*10
                ;
            }

        }
        myContainer.x = stage.x 
        myContainer.y = stage.stageHeight / 2 - myContainer.height / 2;
        addChildAt(myContainer,0);
    }

最初のムービー クリップと同じムービー クリップを使用して myContainer2 を作成する方法を教えてください。

myContainer2.x = myContainer.x + myContainer.width +10

myContainer2.y = stage.stageHeight / 2 - myContainer2.height / 2;

4

3 に答える 3

2

簡単な方法はcreateRow_Col、コンテナとx,y:

private var bg:BG = new BG(); // this is not used as another `bg` is declared in side the function
private var myContainer:MovieClip = new MovieClip();
private var myContainer2:MovieClip = new MovieClip();

public function MainClass_Test() {
    createRow_Col(myContainer, stage.x, stage.stageHeight/2 - myContainer.height/2);
    createRow_col(myContainer2, myContainer.x + myContainer.width + 10);
}

private function createRow_Col(container:MovieClip, x:Number, y:Number) {
    var bg:MovieClip = new BG();
    for (var i:int = 0; i < 5; i++) {
        bg[i] = new BG();
        for (var j:int = 0; j < 5; j++) {
            bg[i][j] = new BG();
            container.addChild(bg[i][j]);
            bg[i][j].x = bg[i][j].width * j + j * 10;
            bg[i][j].y = bg[i][j].height * i + i * 10;
        }

    }
    container.x = x; 
    container.y = y;
    addChildAt(container, 0);
}

より良い方法は、createRow_Col の機能を MovieClip から派生したクラスにラップして、2 つのインスタンスのみをインスタンス化してステージに追加することです。

于 2013-09-02T17:15:43.290 に答える
0

コンテナ用のクラスを作成してみませんか? その後、同じプロパティで何度でもインスタンス化できます...

于 2013-09-02T17:12:56.443 に答える
0

このようにします。Background クラスを作成して置く

private function createRow_Col()

Background.as の一部として、bg がステージに追加されたときにその関数を呼び出します。

addEventListener(Event.ADDED_TO_STAGE, onAdded) // in Background.as

次に、メイン クラスで vars bg1 と bg2 を作成し、コンテナーに追加します。トランジション効果を作成できるように、これが必要だと思います。そうでない場合は、そのままにして、j < 5 の代わりに j < 10 をループに入れることができます。

これが役立つことを願っています!

于 2013-09-02T17:17:01.327 に答える