蒋维
摘要:该文介绍了在Flash中如何利用动作脚本实现倒计时的几种方法。
关键词:Flash;倒计时;动作脚本
在Flash的交互设计中,很多时候都需要进行时间控制,这里所说的时间控制是指持续时间,即结束时间减去开始时间得到的时间差.在Flash时间函数中没有日期、时间的加减功能,对于需要用到“倒计时”时没法直接求两时间差,需要借助于其他函数来完成.本文共介绍了三种用动作脚本制作倒计时器的方法。
1程序的设计与实现
1.1程序的设计
程序设计的基本思想是整个倒计时过程中剩余时间是以秒为单位进行倒计时,而倒计时剩余时间的显示则是由时、分、秒三部分组成,我们需要把倒计时剩余总秒数转换成相对应的时、分、秒.如一个3位整数456,百位4:INT(456/100),十位5:INT((456%100)/10),个位6:456%10,Flash中是用相同的方法提取时、分、秒,只是时间单位进制是60。
1.2程序的实现
(1)方法一的实现过程
此方法是在系统的时间轴上截取一个倒计时起始时间timestart,再截取一个倒计时终点时间timeend,seconds用于记录当前系统的最新更新时间刚开始seconds的值与timestart的值相等,随着系统时间值一秒一秒增加,seconds中的值也在逐渐加1变化,timeend-seconds便是倒计时剩余时间.各时间点的关系如下图1。
选中第一帧关键帧,打开动作面板输入以下代码:
var time;
time=new TextField();//生成文本域
time.defauhTextFormat=new TextFormat(黑体”,20,Oxff0000)设置文本格式
time.x=200;time.y=200;//设置文本在舞台上的位置
vat startt:Date=new Date();//截取系统时间轴上某点作为倒计时起始时间
此方法是在系统时间轴上截取倒计时时间段,程序不能保证在任意时间点上都能正常运行.以系统时间是24小时制为例,倒计时取得的计时起点和终点不能是横跨在凌晨00:00两边的时间点,可以在seconds取得新值前加一条判断语句,if(nowt.hours (2)方法二的实现过程 此方法是在getTimer()函数时间轴上截取时间段.getTimer()函数是获取从Flash开始运行到现在所经过的时间值,以毫秒为单位,getTimer()中的值会随着程序运行时间的增加而增加.方法二不是在系统时间轴上截取时间段,因此没有方法一的 此方法中需要用Math.ceil()函数取得倒计时剩余总时间,否则整个倒计时会少计时1秒. (3)方法三的實现过程 此方法是创建一ClockFun()函数,在ClockFun()函数中倒计时总时间逐一减少,再利用setInterval()函数每隔1000毫秒即1秒执行一次ClockFun()函数 选中第一帧关键帧,打开动作面板输入以下代码: 2结论 各方法中可自行增加一些控制语句,使程序功能更加完善,如方法一中用if(seconds>timeend)time.text=”时间到!”来控制倒计时结束时显示的内容,等等。