萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> Flash教程 >> Flash制作時鐘的實例教程

Flash制作時鐘的實例教程

   本例為用Flash AS3.0制作時鐘的實例教程,為Flash AS入門教程第八課的延伸教程,希望能給朋友們帶來幫助。

  AS3.0實例教程二-時鐘的制作

  效果:

Flash制作時鐘的實例教程  三聯

  雖然制作時鐘老套了點,但它確可以較全面地應用到時間日期和間隔等知識,仍不失為較好的入門練習。

  一. 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_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();

copyright © 萬盛學電腦網 all rights reserved