如何用Flash AS3.0制作時鐘?制作時鐘的方法介紹
本例為用Flash AS3.0制作時鐘的實例教程,為Flash AS入門教程第八課的延伸教程,希望能給朋友們帶來幫助。
AS3.0實例教程二-時鐘的制作
雖然制作時鐘老套了點,但它確可以較全面地應用到時間日期和間隔等知識,仍不失為較好的入門練習。
一. AS3.0時間日期簡介
時間和日期主要應用在讀取時間日期和設置時間間隔兩個方面。
在AS3.0中時間日期仍然是用Date類來讀取,與AS2.0相比3.0要獲取時間日期更加方便一些。
同樣的要使用Date類首先要創建該類的一個實例,比如: var nowtime:Date = new Date(); 這樣就獲得了一個Date的實例:nowtime 直接調用Date實例的一些屬性即可獲得當前日期和時間,例:nowtime.fullYear 當前年份nowtime.month 1當前月,month屬性的值是0-11,所以要獲得當前月份應該是month 1。
nowtime.date 當前日 nowtime.day 當前星期值為0-6 nowtime.hours 當前小時 nowtime. minutes 當前分鐘 nowtime. seconds 當前秒鐘 在AS3.0中設置時間間隔最常用的應該是Timer類。
首先創建一個Timer類的實例: var 實例名稱:Timer = new Timer(間隔的毫秒數,[重復次數]); 比如我們要設置一個每隔1秒鐘執行一次,共要執行5秒鐘的時間間隔: var jg:Timer = new Timer(1000,5); 如果沒有設置重復次數參數,那么將永不停止地每隔一間隔時間執行一次。
創建Timer實例后,就用該實例偵聽TIMER事件,來調用函數: jg. addEventListener(TimerEvent.TIMER,sc); 這樣每隔一秒將調用一次sc函數,一共要調用5次。
還要用一句: jg.start(); Timer實例開始起動。
將要執行的動作定義在一個函數中,如上面的sc函數: 格式: function 函數名(event:TimerEvent):void{ 要執行的動作 } 下面是一個完整的Timer類應用的代碼: var i =0; var jg:Timer = new Timer(1000,5); jg. addEventListener(TimerEvent.TIMER,sc); jg.start(); function sc(event:TimerEvent):void { i ; trace(i); } 將上述代碼粘帖在第一幀,測試影片,每秒鐘將會輸出一個數字,5秒后結束運行,最終結果是: 1 2 3 4 5
二、時鐘的制作:
按以下制作好鐘面及指針,時針,分針,秒針均為MC,注冊點在底部正中,實例名稱分別為sz_mc,fz_mc,mz_mc年月日星期共4個動態文本框,實例名稱分別為:y_txt,m_txt,d_txt,w_txtvar dqtime:Timer = new Timer(1000);function xssj(event:TimerEvent):void{var sj:Date = new Date();var nf = sj.fullYear;var yf = sj.month 1;var rq = sj.date;var xq = sj.day;var h = sj.hours; var m = sj.minutes; var s = sj.seconds;var axq:Array = new Array(星期日,星期一,星期二,星期三,星期四,星期五,星期六); y_txt.text = nf;m_txt.text = yf; d_txt.text = rq; w_txt.text = axq[xq];if(h12){h=h-12;}sz_mc.rotation = h*30 m/2; fz_mc.rotation= m*6 s/10;mz_mc.rotation = s*6;} dqtime.addEventListener(TimerEvent.TIMER,xssj);dqtime.start();