FLASH倒计时器
发布网友
发布时间:2022-04-21 20:04
我来回答
共1个回答
热心网友
时间:2023-08-17 11:37
在Flash时间函数中没有日期、时间的加减功能,对于需要用到“倒计时”时没法直接求两时间差,这里我们不得不借助另一特殊函数gettime()来计算。
该函数是取得指定对象自1970年1月1日午夜(通用时间)以来的毫秒数。譬如我们定义了一个时间变量“s1”,赋给它的值是“2006年8月1日0时”,试用下面语句:
s1=new Date(2006,7,1,0,0,0);
sj = s1.getTime();
如果设置一个动态文本框,变量名为“sj”,运行结果文本框中就出现:
1154361600000
就是说,自1970年1月1日午夜到2006年8月1日的午夜经过了1154361600000毫秒。那么还要说明一下,我们说的8月1日你怎么在时间参数里写2006,7,1呢,只是因为它按够了一个月的天数后才计月的,于是把每年开始的月计算为0,所以8月份计为7。
这就好啦,有了这个值我们就能求出两时间的差啦。当然,我们做倒计时不能显示出毫秒数,因为看到这些毫秒数,谁也不知道还有多少时间,程序中还要通过换算显示出几天几时或几分几秒才好。下面我们就从这个思路制作“倒计时”。
为了方便其他程序调用,还建立一个新元件(影片剪辑)。建立6个“输入文本”框,分别输入变量名“n、y、r、d、f、m”,用以分别输入最终目标的年、月、日、点、分、秒数,选择“n”框,打开“属性”面板,点击“字符”弹出“字符选项”,选中“仅”“数字”,点击“完成”,在下行“最多字符”框中输入“4”,如下图:
<img src=>
其他框同样都选择“仅”“数字”,“最多字符”框中输入“2”。这样可以避免输入时间时输入非标字符和输入过多位数。最好再选中对齐按钮中的右对齐。
时间轴共用2帧,在第1帧输入如下代码:
s2 = new date();
js1 = int((s1.gettime()-s2.gettime())/1000);
t1 = int(js1/(3600*24));
d1 = int(js1/3600)-t1*24;
f1 = int(js1/60)-t1*60*24-d1*60;
m1 = js1-t1*3600*24-d1*3600-f1*60;
if (js1<0.1) {
js = 离目标时间还差+t1+天+d1+小时+f1+分+m1+秒;
} else {
is = 时间到!倒计时结束。; }
制作一个“开始”按钮,输入代码:
on (release) {
s1 = new date(n,y-1,r,d,f,m); }
前几天看到的,希望能帮上。