Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在Flash AS3中单击特定符号时,如何将其从后台删除?_Actionscript 3_Flash_Adobe - Fatal编程技术网

Actionscript 3 在Flash AS3中单击特定符号时,如何将其从后台删除?

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

我在舞台上随机添加了几个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{
            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);