蔣維
摘要:該文介紹了在Flash中如何利用動作腳本實現(xiàn)倒計時的幾種方法。
關(guān)鍵詞:Flash;倒計時;動作腳本
在Flash的交互設(shè)計中,很多時候都需要進行時間控制,這里所說的時間控制是指持續(xù)時間,即結(jié)束時間減去開始時間得到的時間差.在Flash時間函數(shù)中沒有日期、時間的加減功能,對于需要用到“倒計時”時沒法直接求兩時間差,需要借助于其他函數(shù)來完成.本文共介紹了三種用動作腳本制作倒計時器的方法。
1程序的設(shè)計與實現(xiàn)
1.1程序的設(shè)計
程序設(shè)計的基本思想是整個倒計時過程中剩余時間是以秒為單位進行倒計時,而倒計時剩余時間的顯示則是由時、分、秒三部分組成,我們需要把倒計時剩余總秒數(shù)轉(zhuǎn)換成相對應(yīng)的時、分、秒.如一個3位整數(shù)456,百位4:INT(456/100),十位5:INT((456%100)/10),個位6:456%10,F(xiàn)lash中是用相同的方法提取時、分、秒,只是時間單位進制是60。
1.2程序的實現(xiàn)
(1)方法一的實現(xiàn)過程
此方法是在系統(tǒng)的時間軸上截取一個倒計時起始時間timestart,再截取一個倒計時終點時間timeend,seconds用于記錄當前系統(tǒng)的最新更新時間剛開始seconds的值與timestart的值相等,隨著系統(tǒng)時間值一秒一秒增加,seconds中的值也在逐漸加1變化,timeend-seconds便是倒計時剩余時間.各時間點的關(guān)系如下圖1。
選中第一幀關(guān)鍵幀,打開動作面板輸入以下代碼:
var time;
time=new TextField();//生成文本域
time.defauhTextFormat=new TextFormat(黑體”,20,Oxff0000)設(shè)置文本格式
time.x=200;time.y=200;//設(shè)置文本在舞臺上的位置
vat startt:Date=new Date();//截取系統(tǒng)時間軸上某點作為倒計時起始時間
此方法是在系統(tǒng)時間軸上截取倒計時時間段,程序不能保證在任意時間點上都能正常運行.以系統(tǒng)時間是24小時制為例,倒計時取得的計時起點和終點不能是橫跨在凌晨00:00兩邊的時間點,可以在seconds取得新值前加一條判斷語句,if(nowt.hours (2)方法二的實現(xiàn)過程 此方法是在getTimer()函數(shù)時間軸上截取時間段.getTimer()函數(shù)是獲取從Flash開始運行到現(xiàn)在所經(jīng)過的時間值,以毫秒為單位,getTimer()中的值會隨著程序運行時間的增加而增加.方法二不是在系統(tǒng)時間軸上截取時間段,因此沒有方法一的 此方法中需要用Math.ceil()函數(shù)取得倒計時剩余總時間,否則整個倒計時會少計時1秒. (3)方法三的實現(xiàn)過程 此方法是創(chuàng)建一ClockFun()函數(shù),在ClockFun()函數(shù)中倒計時總時間逐一減少,再利用setInterval()函數(shù)每隔1000毫秒即1秒執(zhí)行一次ClockFun()函數(shù) 選中第一幀關(guān)鍵幀,打開動作面板輸入以下代碼: 2結(jié)論 各方法中可自行增加一些控制語句,使程序功能更加完善,如方法一中用if(seconds>timeend)time.text=”時間到!”來控制倒計時結(jié)束時顯示的內(nèi)容,等等。