如何在 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 的时间轴内执行此操作。
我对 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 的时间轴内执行此操作。