如何使用脚本控制flash的播放速度?

如题,我希望在我的flash中添加两个按钮,使他们获得:当点击A按钮时:动画播放速度提高两倍;并且A按钮被B按钮替换;当点击B按钮时:动画播放速度还原;B按钮消失;由A按钮替换。

求代码以及制作时注意的细节

能回答的大神补高分

第1个回答  推荐于2016-11-12

1、新建一MC: btn,三帧,第一帧和第三帧放同一个按钮B“播放”,第二帧放按钮A“两倍播放”,三个帧都加上代码:

stop();

2、btn第一帧按钮代码:

on (release) {
 nextFrame();
 _root.play();
}

btn第二帧按钮代码:

on (release) {
 nextFrame();
 var a = _root._totalframes; 
// 获取动画总帧数
 var b = _root._currentframe;
 // 获取动画当前播放的帧数
 _root.gotoAndPlay(2*a/3+b/2);
 //总帧数=原速播放+两倍速播放=原速+原速/2.
 }

btn第三帧按钮代码:

on (release) {
 prevFrame();
 var a = _root._totalframes;
 var c = _root._currentframe;
 _root.gotoAndPlay([c-2*a/3]*2);
}

3、回到主场景,标记好时间轴动画的最后的一帧,选择时间轴动画所有帧,复制一份,紧粘贴在标记的帧位置后面。粘贴后,选择标记帧的下一帧,F6键和组合“shift+F5”键轮流按,隔一帧减一帧,按完帧数自然是原速度的0.5倍。

4、时间轴新建一层,放入MC " btn",命名实例名:btn。

5、时间轴新建一层,在开始第一帧插入代码:

stop();
btn.gotoAndStop(1);

在原倍播放结束位置,刚标好的位置插入代码:

gotoAndStop(1);
btn.gotoAndStop(1);

在时间轴最后一帧插入代码:

gotoAndStop(1);
btn.gotoAndStop(1);

OK了。

如果动画在MC上,直接复制元件,F6键和组合“shift+F5”键轮流按,按完帧数也是原速的0.5倍。两倍速的MC标识符为:aa,原速的MC标识符为bb.

新建一MC:btn,插入三个帧,三个帧都放入代码:

stop();

第一帧放按钮B“原速播放”,按钮代码为:

 on (release) {
 nextFrame();
 _root.attachMovie("bb", "newbb", 100); 
 //

 _root.newbb.play();
}

第二帧放按钮A“两倍速播放”,按钮代码为:

on (release) {
 nextFrame();
 var a = _root.newbb._currentframe;
 // 获取newbb动画当前播放的帧数
 _root.attachMovie("aa", "newaa", 100);  
 //将加倍速MC:aa加载到场景,并命名实例名为newaa
 _root.newaa.gotoAndPlay(a/2);
 // a/2得到newaa动画当前要播放的帧数
}

第三帧放按钮B“原速播放”,按钮代码为:

on (release) {
 prevFrame();
 var b = _root.newaa._currentframe;
 // 获取newaa动画当前播放的帧数
 _root.attachMovie("bb", "newbb", 100);
 _root.newbb.gotoAndPlay(b*2);
 // b*2得到newaa动画当前要播放的帧数
}

然后将btn拖放在舞台中,OK。

FLASH8版本,AS2.0,理论上是可行的。

本回答被提问者和网友采纳