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);
    }
}

如果您不单击苹果,则苹果实例将为空。

我可能会将苹果保存在一个数组中,并在它们从舞台/父级中删除后将它们从数组中删除。然后,您需要做的就是检查舞台上是否还有苹果,检查该数组的长度。

于 2012-11-25T18:03:24.113 回答