我们做一个动画短片的时候有没有考虑怎样使它倒转播放呢?如果说短片里只有一个motion tween或者shape tween,那么很容易,一个revert frame就可以完成倒放。
但是一个动画短片里面往往不仅有前面提及的渐变动画而且还有帧动画,以及若干的层,那么这样的动画短片要实现倒转播放就不是一个简单的 revert frame 命令就可以完成的。今天我要说的就是利用actionscript 来实现动画短片的倒转播放控制。
演示效果如下:按“播放”按钮,影片就会正常播放,按“倒带”按钮,影片就会倒转播放,而且随时有效!
原理很简单,首先我们应该有一个现成的动画短片,然后就是制作一个只含有AS脚本的MC ,该MC里的AS脚本能够控制动画短片的倒转播放和正常播放!在做2个按钮来控制含有AS脚本的MC的动作。
步骤一:在现有的动画短片中增加一个层:AS,在这个层上我们来放置一个只含有AS脚本的MC和2个控制该MC动作的按钮:“倒带”和“播放”按钮。图中红色圆圈内已经被锁定的层就是我们要随时使它正常播放和倒带的动画短片。
步骤二:(只含有AS脚本的MC的制作)新建一个MC:控制。在layer1中插入5个关键帧,如下图所示:
在*帧上写入AS脚本:stop();
在第二帧写入AS脚本:
tellTarget ("../") {
prevFrame();
}
//“../”表示是上一级的MC,我们也可以用_parent来代替,一样的效果。
// prevFrame();的作用是停到上一帧去。
在第三帧写入AS脚本:
call(2);
gotoAndPlay(2);
// call(2);调用第2帧的动作
// gotoAndPlay(2);到第2帧并播放(这样若从第二帧播放那么到第三帧时在返回到第二帧,就形成了一个循环,从而达到使上一级MC倒转播放的目的)
在第四帧上写入AS脚本:
tellTarget ("../") {
nextFrame();
}
//“../”表示是上一级的MC,我们也可以用_parent来代替,一样的效果。
// nextFrame();的作用是停到下一帧去。
在第五帧上写入AS脚本:
call(4);
gotoAndPlay(4);
// call(4);调用第4帧的动作
// gotoAndPlay(4);到第4帧并播放(这样若从第四帧播放那么到第五帧时在返回到第四帧,就形成了一个循环,从而达到使上一级MC正常播放的目的)
步骤三:回到Scene 1 在AS层上拖入“控制”MC到场景中,(注意:由于“控制”MC里面只有AS脚本没有任何图形元素,所以显示为图中红色圆圈中的小点),同时赋予该MC一个instance 。
步骤四:在场景中拖入2个按钮如下如所示:
在倒放按钮“<”上加上AS 脚本:
on (release){
tellTarget("as"){
gotoAndPlay(2);
}
}
//让MC:AS从第二帧开始播放,执行“AS”中的脚本实现动画短片的倒转播放。
在正常播放按钮“〉”上加上脚本:
on (release){
tellTarget("as"){
gotoAndPlay(4);
}
}
// 让MC:AS从第四帧开始播放,执行“AS”中的脚本实现动画短片的正常播放。
现在测试看看是否成功?!源文件下载
但是一个动画短片里面往往不仅有前面提及的渐变动画而且还有帧动画,以及若干的层,那么这样的动画短片要实现倒转播放就不是一个简单的 revert frame 命令就可以完成的。今天我要说的就是利用actionscript 来实现动画短片的倒转播放控制。
演示效果如下:按“播放”按钮,影片就会正常播放,按“倒带”按钮,影片就会倒转播放,而且随时有效!
原理很简单,首先我们应该有一个现成的动画短片,然后就是制作一个只含有AS脚本的MC ,该MC里的AS脚本能够控制动画短片的倒转播放和正常播放!在做2个按钮来控制含有AS脚本的MC的动作。
步骤一:在现有的动画短片中增加一个层:AS,在这个层上我们来放置一个只含有AS脚本的MC和2个控制该MC动作的按钮:“倒带”和“播放”按钮。图中红色圆圈内已经被锁定的层就是我们要随时使它正常播放和倒带的动画短片。
步骤二:(只含有AS脚本的MC的制作)新建一个MC:控制。在layer1中插入5个关键帧,如下图所示:
在*帧上写入AS脚本:stop();
在第二帧写入AS脚本:
tellTarget ("../") {
prevFrame();
}
//“../”表示是上一级的MC,我们也可以用_parent来代替,一样的效果。
// prevFrame();的作用是停到上一帧去。
在第三帧写入AS脚本:
call(2);
gotoAndPlay(2);
// call(2);调用第2帧的动作
// gotoAndPlay(2);到第2帧并播放(这样若从第二帧播放那么到第三帧时在返回到第二帧,就形成了一个循环,从而达到使上一级MC倒转播放的目的)
在第四帧上写入AS脚本:
tellTarget ("../") {
nextFrame();
}
//“../”表示是上一级的MC,我们也可以用_parent来代替,一样的效果。
// nextFrame();的作用是停到下一帧去。
在第五帧上写入AS脚本:
call(4);
gotoAndPlay(4);
// call(4);调用第4帧的动作
// gotoAndPlay(4);到第4帧并播放(这样若从第四帧播放那么到第五帧时在返回到第四帧,就形成了一个循环,从而达到使上一级MC正常播放的目的)
步骤三:回到Scene 1 在AS层上拖入“控制”MC到场景中,(注意:由于“控制”MC里面只有AS脚本没有任何图形元素,所以显示为图中红色圆圈中的小点),同时赋予该MC一个instance 。
步骤四:在场景中拖入2个按钮如下如所示:
在倒放按钮“<”上加上AS 脚本:
on (release){
tellTarget("as"){
gotoAndPlay(2);
}
}
//让MC:AS从第二帧开始播放,执行“AS”中的脚本实现动画短片的倒转播放。
在正常播放按钮“〉”上加上脚本:
on (release){
tellTarget("as"){
gotoAndPlay(4);
}
}
// 让MC:AS从第四帧开始播放,执行“AS”中的脚本实现动画短片的正常播放。
现在测试看看是否成功?!源文件下载