0

您好,我正在使用 Flash AS2 制作一个简单的游戏,但我不知道如何从舞台上移除对象。

我有一个名为“Enemy”的简单对象,其代码如下:

 onClipEvent(enterFrame) {  
             if (hitTest(_root.charBoy)) _root.life--;
             function remove()  { 
             this.removeMovieClip();    
             } 
  }

然后,当我的“子弹”对象像这样击中它时,我尝试调用删除函数:

if (hitTest(_root.Enemy))
    {
        _root[Enemy].remove();
        this.removeMovieClip();
    }

但唯一发生的事情是只有 Bullet 对象被移除并且 Enemy AI 留在舞台上。

我还尝试了以下声明函数的变体:

onClipEvent(load)
{
    function remove()
    {
        this.removeMovieClip();
    }
    remove();   
}
onClipEvent(enterFrame) {
    if (hitTest(_root.charBoy)) _root.life--;
}

onClipEvent(enterFrame) {
    if (hitTest(_root.charBoy)) _root.life--;
    function remove()
    {
        this.removeMovieClip();
    }
    remove();
}

仍然做同样的事情。我也尝试过stage.removeChild(this),但它没有做任何事情。

请告诉我如何解决这个问题,我已经在舞台上设置了敌人,并且有简单的 AI 动作,而不是以编程方式复制它们。

Bullet当我击中某个物体时,如何将它们从舞台上移除。

我的Bullet对象已经可以跟踪他们和hits他们,所以它Bullet本身被从舞台上移除,而敌人的对象仍然存在。

4

1 回答 1

0

用“敌人”周围的引号试试

_root["Enemy"].remove();

或如上所述

_root.Enemy.remove();
于 2013-05-20T01:09:28.383 回答