[AS功能代码教程01]Flash 通用延迟代码
[AS 功能代码教程02]数字魔方及数组概念
[AS 功能代码教程03] 三角函数及应用
使用方法:
将下列代码写入fla的第一帧;在任意帧中写入delay();命令就可以实现3秒钟延时功效;
var fps:Number = 12;
//在Flash中默认的fps值为12,如果改动了默认fps值的话这里也要相应改动;
var delaytime:Number = 3;
//延时的秒数;
var counter:Number = 0;
//计数器的初值;
function delay() {
onEnterFrame = function () {
if (counter<delaytime*fps) {
_root.stop();
counter++;
} else {
delete this.onEnterFrame;
counter = 0;
_root.play();
}
};
}
/*涵数解释:当进入帧时,数delaytime*fps个数,完成倒数3秒且影片停止的工作(原因见注1);倒数3秒完成后删除该动作,影片播放的动作。*/
注1:《Flash充电:FPS(Frames Per Second);即每秒播放帧的数量,fla中默认的为12,意思就是说,默认fla动画是1秒钟播放12帧》。
有了这个小常识,那么执行一次onEnterFrame(进入帧),counter++就自加了1,那么一秒钟要加多少次呢?呵呵,1秒钟要进入12次帧,所以自加了12次。那么2秒钟,3秒钟呢…于是我们得出了这个delaytime(秒数)*fps(每秒进入的帧数);这就是总共要停留的时间。原理就是用帧数做延时。
注2:当该fla只有一帧且帧动作中有onEnterFrame,则不可使用上述delay()涵数,而要直接在onEnterFrame中输入如下代码:
var fps:Number = 12;
var delaytime:Number = 3;
var counter:Number = 0;
if (counter<delaytime*fps) {
counter++;
} else {
counter = 0;
}