noob试图让坏人在Flash游戏中爆炸

noob试图让坏人在Flash游戏中爆炸,flash,movieclip,Flash,Movieclip,请原谅我在这方面的无礼(我对Flash是新手),但我已经在各地搜索了3天来找到这个,我尝试了很多不同的东西,但似乎没有任何效果。这应该很简单 场景:简单的游戏,玩家在太空飞行射击坏人。 (我的开始步骤,其中介绍了本教程:) 我现在想让我的敌人在检测到碰撞时爆炸。我用我的爆炸动画制作了一个新的电影剪辑,把它放到了我敌人的电影剪辑上。我标记为“爆炸”的框架 在GameController.com上,当我深入到检测到子弹碰撞时移除敌人的代码,移除了removechild代码,并将其替换为: 敌人。去玩

请原谅我在这方面的无礼(我对Flash是新手),但我已经在各地搜索了3天来找到这个,我尝试了很多不同的东西,但似乎没有任何效果。这应该很简单

场景:简单的游戏,玩家在太空飞行射击坏人。 (我的开始步骤,其中介绍了本教程:)

我现在想让我的敌人在检测到碰撞时爆炸。我用我的爆炸动画制作了一个新的电影剪辑,把它放到了我敌人的电影剪辑上。我标记为“爆炸”的框架

在GameController.com上,当我深入到检测到子弹碰撞时移除敌人的代码,移除了removechild代码,并将其替换为: 敌人。去玩(“爆炸”); 这给了我错误1061:通过静态类型类的引用调用可能未定义的方法gotoAndPlay

我试过根。敌人。去玩(“爆炸”); 它不起作用(我读到_root在as3中不起作用)

我错过了什么

我写的代码在几个不同的领域。 在游戏控制器里,就像我一样

        for (var i=bullets.length - 1; i >= 0; i--)
        {
            for (var j=enemies.length - 1; j >= 0; j--)
            {
                if (bullets[i].hitTestObject(enemies[j].collisionArea))
                {

                    playerScore +=  enemies[j].getPointsWorth();

                    mcGameStage.removeChild(bullets[i]);
                    bullets.splice(i,1);

                    Enemy.gotoAndPlay("Explode");

                    break;
                }
            }
        }
如果我移除gotoandplay,然后放入一个

removeChild(敌人[j]); 3.拼接(j,1)

然后游戏运行正常(没有爆炸动画)

@苏尼尔D: 你的代码工作起来很有魅力。然而,这给我留下了一个新问题。当爆炸动画结束时,我需要移除我的敌人(第35帧) 我试过这个密码

enemy.addEventListener(Event.ENTER_FRAME,checkFrame);

function checkFrame(event:Event):void
    {
        if (enemy.currentFrame  ==  35)
            {
                  mcGameStage.removeChild(enemies[j]);
                  enemies.splice(j,1);
                  enemy.removeEventListener(Event.ENTER_FRAME,checkFrame);
            }
    }
这给了我一个错误#2007:参数child必须为非null。 在flash.display::DisplayObjectContainer/removeChild()中 at MethodInfo-243()


有什么想法吗?

你得到的错误是,当你做
敌方游戏时
您正试图调用
敌方
类本身的
gotoAndPlay()
方法。相反,您需要在敌方类的实例上调用
gotoAndPlay()
方法

从您显示的代码来看,您的
敌人
数组中似乎有
敌人
类的实例(这是一个
敌人
对象数组)。因此,您可能应该能够通过这样做来引爆敌人:

var enemy:Enemy = enemies[j] as Enemy;
enemy.gotoAndPlay("Explode");

正确的。非常感谢。我不明白其中的区别,但现在你说了,这是有道理的。