FLASH倒计时问题:我做了一个FLASH倒计时,时间是做出来了,但是它不一秒一秒地动.请教
发布网友
发布时间:2023-09-07 18:44
我来回答
共3个回答
热心网友
时间:2023-09-20 15:54
最好的办法是你把你的脚本写出来看下!听你说的很可能你只是做了一个FL动画并没有加脚本!
如果没脚本下面的可以作为参考:
在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); }
热心网友
时间:2023-09-20 15:55
我不知道你只是做了效果呢,还是说加了代码之后代码有问题。还是说清楚一些吧。
热心网友
时间:2023-09-20 15:55
如果你的帧频是12帧每秒的话,那倒计时就要每过12帧动一下。
flash 8的帧频默认是12。
(如果我没猜错的话,你用的是时间轴动画,而不是脚本吧!麻烦把问题写详细一点,我就用不着说猜了。好吧)