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日期物件的月份,值為0到11的整數。
說明:特別注意此方法取得的月份為從0(1月)到11(12月)的整數,所以換算成實際月份時記得要加1。
四、getDate方法
語法:day = name_date.getDate();
功能:取得name_date日期物件的日期,值為1到31的整數。
五、getHours方法
語法:hour = name_date.getHours();
功能:取得name_date日期物件的小時數,值為0到23的整數。
六、getMinutes方法
語法:minute = name_date.getMinutes();
功能:取得name_date日期物件的分鐘數,值為0到59的整數。
七、getSeconds方法
語法:second = name_date.getSeconds();
功能:取得name_date日期物件的秒數,值為0到59的整數。
利用日期物件的方法,做出一個簡易的數字時鐘。
載入【ch12/簡易時鐘.fla】檔案。
【文字】圖層:
有2個動態文字欄位date_txt、time_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; |
解說:
行01:today_date宣告為日期物件。
行02∼08:分別取得日、月、年、時、分及秒的數值。
行03:月份需加1。
行08∼10:如果秒數小於10則補零。
行11∼13:如果分鐘數小於10則補零。
行14∼16:如果時數小於10則補零。
行17:顯示日期於動態文字date_txt。
行18:顯示時間於動態文字time_txt。
影格2程式
01 |
gotoAndPlay(1); |
解說:
行01:因為需要不斷的更新時間所以和影格1形成迴圈。