Actionscript 3 在Flash AS3中单击特定符号时,如何将其从后台删除?
我在舞台上随机添加了几个movieclip(苹果的简单图像)的例子。现在,我试图点击每一个删除它们 以下是我所拥有的:Actionscript 3 在Flash AS3中单击特定符号时,如何将其从后台删除?,actionscript-3,flash,adobe,Actionscript 3,Flash,Adobe,我在舞台上随机添加了几个movieclip(苹果的简单图像)的例子。现在,我试图点击每一个删除它们 以下是我所拥有的: public function Apples() { for(var count:int=1; count<=10; count++){ var apple = new Apple(); apple.x = Math.random() * stage.stageWidth; appl
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);
}
}
我还尝试用e.target.name替换e.target。在这种情况下,程序会运行,但只要我单击apple,输出日志中就会出现以下错误:
TypeError: Error #1034: Type Coercion failed: cannot convert "9" to flash.display.DisplayObject.
at MethodInfo-4()
那么,有没有办法删除我正在单击的特定对象?在onClick事件处理程序中,尝试以下操作:
var displayObject:DisplayObject = (DisplayObject) (e.target);
displayObject.parent.removeChild(displayObject);
如果事件处理程序要在单击时完全消失/删除,您可能还需要确保使用弱引用将其添加到显示对象。IMO弱侦听器对于初学者来说是一把双刃剑。它们使事情变得更容易,当你学习事情如何运作时,这并不总是一件好事。
var displayObject:DisplayObject = (DisplayObject) (e.target);
displayObject.parent.removeChild(displayObject);