如何在 AS3 中的特定帧上播放动画片段?

How to make a movieclip play on a specific frame in AS3?

我对 Flash 非常生疏,大概 10 年没碰过它了,似乎无法弄清楚,也无法在网上找到它:

我有一个包含两层的 MovieClip,每层都有一个补间形状。基本上它是一扇打开和关闭的门。

我把它放到了主时间线上,但现在我需要它来启动和停止。自从我上次使用 Flash 动作可以在特定关键帧上进行以来,这就是我现在苦苦挣扎的地方。

我创建了一个名为 actions 的新层,只是为了让事情井井有条,目前有:

barrier1.stop();

我只想要一些可以让我声明帧的东西,比如让 barrier1 开始播放的 57。尝试使用 play();Event.ENTER_FRAME 但没有成功。我该如何设置?

好吧,使用您的影片剪辑的实例名称很容易

barrier1.stop(); // Stops the movieClip
barrier1.play(); // Resumes 
barrier1.gotoAndStop(12) // Goes to 12nd frame and stop
barrier1.gotoAndPlay(12) // Goes to 12nd frame and play
barrier1.currentFrame // returns barrier currentframe

用于从场景级别捕获帧:

this.addEventListener(Event.ENTER_FRAME,onLoop);
function onLoop(event:Event){
  if(barrier1.currentFrame == 57){
     trace("BARRIER is in 57. frame");
  }
}

第一帧动画片段里面

var root:MovieClip = this.parent as MovieClip
root.makeStartSceneAnimation()

**in timeline scene level [root]**

function makeStartSceneAnimation(){
    /// barrier started to play

}

如果使用时间轴,可以在需要的帧上添加关键帧,然后添加stop();作为动作层中的动作。但请记住,如果您在主时间线中执行此操作 - 它会停止一切。如果你想停止那个 MovieClip,那么你必须在 MoviceClip 的时间轴内执行此操作。