AS3 - removeChild()从舞台中删除所有内容

cab*_*ret 1 flash actionscript actionscript-3 flash-cs5

我正在为学校开发一款简单的Flash游戏.在一个级别中,多个敌人产生并且玩家应该射击它们.我使用removeChild()来摆脱被射击的敌人,但当我点击(击中)敌人时,我的舞台上的一切都被移除了; 它完全是空白的.

用敌人填充我的舞台的功能如下:

    private function Game2():void{
    for (var i:uint=0; i<50; i++) {

        var man:MovieClip = new man_mc();
        man.x=Math.random()*750;
        man.y=Math.floor(Math.random()*(70))+350;
        addChild(man);
        man.addEventListener(MouseEvent.CLICK, getroffen);
    }
Run Code Online (Sandbox Code Playgroud)

函数'getroffen'检查敌人是否被击中:

public function getroffen(evt:MouseEvent):void{
            trace("hit");
            this.parent.removeChild(this);

}
Run Code Online (Sandbox Code Playgroud)

这里有点混淆为什么它会删除舞台上的所有内容而不是仅仅删除我点击的敌人.有帮助吗?非常感谢.

div*_*ges 7

取决于getroffen()你在哪里,你正在删除该类(this指向当前范围对象),所以我猜它可能是Main类.

您需要执行类似删除功能的操作:

var man:MovieClip = evt.target as MovieClip;
man.parent.removeChild( man );
Run Code Online (Sandbox Code Playgroud)