只播放一个关键帧

时间:2010-01-16 17:37:36

标签: flash actionscript-3 actionscript flash-cs3

我希望我能解释清楚。但在我的游戏中,我的子弹Movieclip有3个关键帧。 1显示其正常状态。 2表示Blown Up,3表示将其从舞台上移除。共3帧。当子弹击中一个物体时,我会去玩第二帧。然后当第3帧命中时,我将其删除。这是我的代码

private function blowUp():void
        {
            if(dead)
            {
                gotoAndPlay(2);
                if(currentFrame == 3)
                {
                    garbage = true;
                }
            }
        }

我的问题是第2帧,但从未到达第3帧。所以第3帧不能垃圾收集子弹。如果我使用Play()然后它可以工作,但是gotoAndPlay不会

我甚至尝试从第3帧移除关键帧(它仍然是一个帧)。 (希望它会发挥作用)但它没有。我知道我的问题很愚蠢,所以如果有人能提供帮助,那就太棒了。感谢

3 个答案:

答案 0 :(得分:2)

你确定你没有在每一帧调用blowUp,所以你一直在重置到第2帧吗?

如果是这样的话,或许,试着放一个布尔警卫:

    private var doingBlowUp : Boolean = false;

    private function blowUp() : void
    {
        if (dead) {
            if (doingBlowUp)
            {
                if (currentFrame == 3)
                {
                    garbage = true;
                    doingBlowUp = false;
                }

            } else {
                doingBlowUp = true;
                gotoAndPlay(2);
            }
        }

    }

答案 1 :(得分:0)

您必须添加一个输入框架事件处理程序。尝试跟踪currentFrame,你正在做逻辑,看它是否== 3.我的猜测是它的值是2。另一种选择是从第3帧调用一个函数来进行适当的清理。

答案 2 :(得分:0)

注意Flash Player 9中的错误,其中gotoAndPlay(x)将播放帧“x”两次。