0

多数のムービークリップ インスタンス (単純なリンゴの画像) をランダムな x と y でステージに追加しました。今、私はそれぞれをクリックしてそれらを削除しようとしています。

これが私のコードです:

public function Apples() {

    for(var count:int=1; count<=10; count++){
        var apple = new Apple();
        apple.x = Math.random() * stage.stageWidth;
        apple.y = Math.random() * stage.stageHeight;    
        apple.name = count;
        stage.addChild(apple);
        }

stage.addEventListener(MouseEvent.CLICK, onClick);



    function onClick(e:MouseEvent):void{
        var displayObject:DisplayObject = (DisplayObject) (e.target);
        displayObject.parent.removeChild(displayObject);
        }
}

私の問題は、すべてのリンゴがいつ取り除かれたかを把握できるようにしたいということです。

呼び出しごとに簡単なカウンターを追加して、onClick表示されているリンゴの数と同じ数に達するとゲーム オーバー メッセージを表示するようにしてみましたが、ここでの問題は、リンゴではなく空のステージをクリックすると、その後、カウントはさらに増加し​​ます。

ユーザーがステージをクリックできないようにする方法、または if 条件でステージがクリックされたかどうかを識別する方法はありますか?

それとも、私が必要とするものを達成するためのまったく別の方法があるのでしょうか?

アドバイスありがとうございます。

4

1 に答える 1

2

ステージにインスタンスを追加Appleしているので、 onClick ハンドラ内で Apple がクリックされたかどうかを確認できます

function onClick(e:MouseEvent):void{
    var apple:Apple = e.target as Apple;
    if(apple) {
       apple.parent.removeChild(apple);
    }
}

リンゴをクリックしないと、リンゴのインスタンスは null になります。

おそらく、リンゴを配列に保持し、ステージ/親から削除されたら、配列から削除します。次に、ステージにリンゴが残っているかどうかを確認するために必要なことは、その配列の長さを確認することだけです。

于 2012-11-25T18:03:24.113 に答える