如何防止点击空白阶段或至少识别它?

时间:2012-11-25 17:19:46

标签: actionscript-3 flash adobe

我已经在随机的x和y上添加了许多movieclip实例(一个苹果的简单图像)到舞台上。现在我试图点击每一个来删除它们。

这是我的代码:

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条件点击了舞台?

或许还有其他方法可以实现我的需求?

感谢您的建议。

1 个答案:

答案 0 :(得分:2)

由于您要向舞台添加Apple个实例,您可以检查是否在onClick处理程序中单击了Apple

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

如果您没有点击苹果,则苹果实例将为空。

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