0

既存の子を置き換えることなく、ボタンを押すたびにステージに子 (インスタンス) を追加するにはどうすればよいですか?

Symbol1、Symbol3、Symbol4、すべての 4 つのクラスがあります。

ボタンであるSymbol3を押すと、クラスall.asを介してステージ上にSymbol1のインスタンスを作成したいと思います。Symbol4で作成したインスタンスをステージ上で作成順に削除したい。例: Symbol3 を 3 回押して、Symbol1 の 3 つのインスタンスをステージ上に作成しました。ここで Symbol4 を押すと、最初に作成されたインスタンスが削除されます。Symbol4 をもう一度押すと、2 番目に作成されたインスタンスが削除されます。

    public class Symbol3 extends SimpleButton
{
    private var creator:all;
    private var child:Symbol1 = new Symbol1  ;
    private var child2:Symbol1 = new Symbol1  ;
    private var child3:Symbol222 = new Symbol222  ;

    public function Symbol3()
    {
        addEventListener(MouseEvent.CLICK, onCLICK);
    }

    private function onCLICK(s:MouseEvent)
    {
        creator = new all(child);
        stage.addChild(creator);
    }
}

.

    public class all extends MovieClip
{
    private var _thief1:MovieClip;

    public function all(par1:MovieClip)
    {
        _thief1 = par1;
        addEventListener(Event.ADDED_TO_STAGE, onADDED_TO_STAGE);
    }

    private function onADDED_TO_STAGE(e:Event)
    {
        removeEventListener(Event.ADDED_TO_STAGE, onADDED_TO_STAGE);
        this.addChild(_thief1);
        _thief1.x = Math.random() * 200;
        _thief1.y = Math.random() * 200;
    }
}

.

    public class Symbol4 extends SimpleButton
{
    public function Symbol4()
    {
        addEventListener(MouseEvent.CLICK, onCLICK);
    }

    private function onCLICK(s:MouseEvent)
    {
        stage.removeChild(?);
    }
}

これは私がこれまで持っているものです。ありがとう

4

2 に答える 2

0

追加/削除可能なすべてのスプライトを 1 つの同じコンテナーに配置する必要がありますcontainer。次に、追加ボタンは次のようになります。

private function onCLICK(s:MouseEvent)
{
    container.addChild(new all(new Symbol1()));
}

そして削除ボタン:

private function onCLICK(s:MouseEvent)
{
    container.removeChildAt(0);
}

レイヤー 0 の子を削除すると、他の子は 1 レイヤー下に移動し、次に削除する子は 0 になります。

于 2013-04-24T08:38:45.773 に答える