AS3.0實例教程-時鐘的制作ww.68design.net/download/200903/20090325175556852.swf
雖然制作時鐘老套了點,但它確可以較全面地應用到時間日期和間隔等知識,仍不失為較好的入門練習。
一. AS3.0時間日期簡介
時間和日期主要應用在讀取時間日期和設置時間間隔兩個方面。在AS3.0中時間日期仍然是用Date類來讀取,與AS2.0相比3.0要獲取時間日期更加方便一些。同樣的要使用Date類首先要創(chuàng)建該類的一個實例,比如:
var nowtime:Date = new Date();
這樣就獲得了一個Date的實例:nowtime
直接調(diào)用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類。
首先創(chuàng)建一個Timer類的實例:
var 實例名稱:Timer = new Timer(間隔的毫秒數(shù),[重復次數(shù)]);
比如我們要設置一個每隔1秒鐘執(zhí)行一次,共要執(zhí)行5秒鐘的時間間隔:
var jg:Timer = new Timer(1000,5);
如果沒有設置重復次數(shù)參數(shù),那么將永不停止地每隔一間隔時間執(zhí)行一次。
創(chuàng)建Timer實例后,就用該實例偵聽TIMER事件,來調(diào)用函數(shù):
jg. addEventListener(TimerEvent.TIMER,sc);
這樣每隔一秒將調(diào)用一次sc函數(shù),一共要調(diào)用5次。
還要用一句:
jg.start();
Timer實例開始起動。
將要執(zhí)行的動作定義在一個函數(shù)中,如上面的sc函數(shù):
格式: function 函數(shù)名(event:TimerEvent):void{
要執(zhí)行的動作
}
下面是一個完整的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);
}
將上述代碼粘帖在第一幀,測試影片,每秒鐘將會輸出一個數(shù)字,5秒后結束運行,最終結果是:
1
2
3
4
5
二、時鐘的制作:
按下圖制作好鐘面及指針,時針,分針,秒針均為MC,注冊點在底部正中,實例名稱分別為sz_mc,fz_mc,mz_mc
年月日星期共4個動態(tài)文本框,實例名稱分別為:y_txt,m_txt,d_txt,w_txt

var 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(h>12){ 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(); |