2012-11-24 54 views
1

我已经在随机x和y的舞台上添加了一个movieclip(一个苹果的简单图像)的几个实例。现在我试图点击每一个删除它们。如何在Flash AS3中点击舞台上的特定符号?

以下是我有:

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{ 
      stage.removeChild(e.target); 
      } 
} 

我碰到下面的错误,如果我试图编译:

1118: Implicit coercion of a value with static type Object to a possibly unrelated type flash.display:DisplayObject. 

我自己也尝试了e.target代e.target.name。在这种情况下,程序运行,但只要我点击了苹果,我得到的输出日志以下错误:

TypeError: Error #1034: Type Coercion failed: cannot convert "9" to flash.display.DisplayObject. 
at MethodInfo-4() 

那么,有没有办法去掉,我点击特定对象?

回答

0

在您的onClick事件处理程序尝试类似:

var displayObject:DisplayObject = (DisplayObject) (e.target); 
displayObject.parent.removeChild(displayObject); 

您可能还希望确保事件处理程序是使用弱引用添加到显示对象,如果它的目的是要彻底消失了/删除点击。

+0

这有帮助,谢谢:) –

+0

IMO弱听者是初学者的双刃剑。它们让事情变得更加简单,当你了解事情的工作方式时,这并不总是一件好事。 – Pier