2008年10月26日
【練習】使用Timer類別 - 實作簡易計時鐘
Timer類別是Flash內建的計時工具,可以設定至毫秒的時間間隔,接下來只要啟動之,時間到時就會引發TIMER事件,相當地簡單易用。因為每次影格的執行時間,不一定那麼的精準,有時單一影格計算量較多時,Flash會給予緩衝時間,就會發生延遲。因此在某些時間條件較嚴苛的應用裡,如:時鐘、即時連線、遊戲計時等,以計時器的TimerEvent.TIMER事件取代影格進入的Event.ENTER_FRAME事件更加適當,經過簡單的換算即可,例如:20 fps(每秒影格數)等於每1000/20=50亳秒執行一次。以下將練習一個基本的應用-計秒時鐘,順便記錄設計的過程,以及Timer的一些用法。
基礎:使用Timer的基本程式碼如下:
[原始檔下載]
var myTimer:Timer=new Timer(2000, 3);//每2秒觸發,共執行3次 myTimer.start(); //開始計時, 反之使用stop() //觸發事件發生時,執行someEventFunc函式 myTimer.addEventListener(TimerEvent.TIMER, someEventFunc);練習:範例檔製作順序
- 在舞台上以圓形、直線工具,將時間盤面、指針畫好,轉成MovieClip。
- 調整指針的中心位置,中心需位於指針的一端,因旋轉時會繞著中心點。
- 以多邊形和距形工具製作播放控制按鈕,轉成Button。
- 在屬性欄給予指針和按鈕名稱,以在ActionScript中呼叫使用。
- 編輯程式碼,加上各事件的處理動作,詳見原始檔
if (myTimer.running) // 取得目前Timer狀態另外,除了 TimerEvent.TIMER 事件外,另有一 TimerEvent.TIMER_COMPLETE 表示所有次數的計時已結束。
[原始檔下載]
引用URL
http://cgi.blog.roodo.com/trackback/7444535
回應文章 

您好~很感謝您的經驗分享~
我想請問~如果要偵測電腦的時間來控制幾點播放A影片`幾點播放B影片的話 action script2該怎麼寫呢>
Posted by rion
at 2009年05月1日 00:27
To rion:
AS2我不太熟,不過Date類別是一樣的:
var date:Date = new Date();
trace (date.getHours());//取得"時"
trace (date.getMinutes());//取得"分"
可以在onEnterFrame裡判斷(效能較差)
或者計算出目標時間與目前的時間差, 然後用Timer來引發
※Flash函式只能取得本機時間
Posted by 熊
at 2009年05月1日 16:42