Flash與時間關係密切,最明顯的就是場景上的時間軸。簡單的計時用時間軸的影格數就可以達成,但是要更精確、更有彈性的處理時間與計時,在製作遊戲時就得靠ActionScript了。在此我們仍然針對初階但是最實用的方法來介紹。

12-1  日期物件

Flash為方便程式存取年月日時分秒等時間資料,設有日期物件來處理。

一、Date物件

語法:name_date = new Date();

功能:建立新的日期物件。

說明:

1. name_date為日期物件的名稱。

2. date為聲音字串的後置字串,本書建議採用。

使用Date物件的方法不少,下面僅介紹幾種較常用的方法。

二、getFullYear方法

語法:year = name_date.getFullYear();

功能:取得name_date日期物件的西元年份,為四位數整數。

三、getMonth方法

語法:month = name_date.getMonth();

功能:取得name_date日期物件的月份,值為011的整數。

說明:特別注意此方法取得的月份為從0(1)11(12)的整數,所以換算成實際月份時記得要加1

四、getDate方法

語法:day = name_date.getDate();

功能:取得name_date日期物件的日期,值為131的整數。

五、getHours方法

語法:hour = name_date.getHours();

功能:取得name_date日期物件的小時數,值為023的整數。

六、getMinutes方法

語法:minute = name_date.getMinutes();

功能:取得name_date日期物件的分鐘數,值為059的整數。

七、getSeconds方法

語法:second = name_date.getSeconds();

功能:取得name_date日期物件的秒數,值為059的整數。

 

 


利用日期物件的方法,做出一個簡易的數字時鐘。

 

執行【ch12/簡易時鐘.swf】檔案

 

 

 

 

 

 

 

 


載入【ch12/簡易時鐘.fla】檔案。

 

 

 

 

 

 

 

 

 

 

【文字】圖層:

2個動態文字欄位date_txttime_txt

action】圖層:

影格1程式

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

today_date = new Date();

day =today_date.getDate();

month = today_date.getMonth() + 1;

year = today_date.getFullYear();

hour = today_date.getHours();

minute = today_date.getMinutes();

second = today_date.getSeconds();

if ( second <10 ) {

  second = "0" + second;

}

if ( minute < 10 ) {

      minute = "0" +minute;

}

if ( hour < 10 ) {

       hour = "0" + hour;

}

date_txt.text = year + "/" + month + "/" + day;

time_txt.text = hour + ":" + minute + ":" + second;

解說:

01today_date宣告為日期物件。

0208:分別取得日、月、年、時、分及秒的數值。

03:月份需加1

0810:如果秒數小於10則補零。

1113:如果分鐘數小於10則補零。

1416:如果時數小於10則補零。

17:顯示日期於動態文字date_txt

18:顯示時間於動態文字time_txt

影格2程式

01

gotoAndPlay(1);

解說:

01:因為需要不斷的更新時間所以和影格1形成迴圈。