萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> Flash 教學

Flash AS3 日期時間與 Timer 類完整學習筆記

日期時間處理是程式設計基礎,Flex/AIR/Flash AS3 主要使用 Date 類與 Timer 類。本筆記整構構建實例化方式、屬性存取、格式化輸出、Timer 事件驅動、時間戳轉換、時區偏移等核心知識點。

Date 類實例化四種方式

  1. 無參數:var now:Date = new Date(); → 當地時間當前日期時間。
  2. 單一毫秒數:var d:Date = new Date(1000*60*60*24*365); → 1970/1/1 起經過毫秒對應日期(顯示為當地時區)。
  3. 多數值參數:var d:Date = new Date(2012, 0, 1, 0, 0, 0, 0); → 年、月(0-11)、日、時、分、秒、毫秒。
  4. 字串解析:var d:Date = new Date("Mon May 1 2006 11:30:00 AM"); → 嘗試解析字串(不推薦,格式易出錯)。

常用屬性存取(以 var d:Date = new Date(); 為例)

d.fullYear      // 年 (如 2024)
d.month + 1     // 月 (0-11 → 需 +1)
d.date          // 日 (1-31)
d.day           // 星期 (0=日 ~ 6=六)
d.hours         // 時 (0-23)
d.minutes       // 分 (0-59)
d.seconds       // 秒 (0-59)
d.milliseconds  // 毫秒 (0-999)

格式化輸出範例

timer.text = '當前時間:' + d.fullYear + '年' + (d.month+1) + '月' + d.date + '日 ' + d.hours + ':' + d.minutes + ':' + d.seconds;

Timer 類——精確週期執行

var myTimer:Timer = new Timer(1000, 60); // 間隔 1000ms,執行 60 次(不填次數則無限)
myTimer.addEventListener(TimerEvent.TIMER, onTimer);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
myTimer.start();

function onTimer(e:TimerEvent):void {
    // 每秒執行一次
}
function onComplete(e:TimerEvent):void {
    // 60 次結束後執行
}

其他重要靜態方法與屬性

  • Date.parse("2012/06/01 12:05:52") → 字串轉毫秒時間戳(靜態方法)。
  • date.time → 該 Date 實例的毫秒時間戳。
  • date.timezoneOffset() → 當地與 UTC 時間差(分鐘),處理跨時區必備。
  • getTimer() → 程式啟動至今經過毫秒(效能計時、遊戲迴圈常用)。

實戰應用場景

  • 即時時鐘、倒數計時器、鬧鐘(Timer + Date)。
  • 遊戲主迴圈固定時間步長(getTimer() 差值法)。
  • 日誌記錄、資料庫存儲統一用 UTC 時間戳(date.time),顯示時轉當地時區。
  • 跨時區會議、世界時鐘(timezoneOffset 換算)。

熟練掌握 Date 與 Timer,是 Flash/Flex/AIR 開發時間相關功能的基石。

copyright © 萬盛學電腦網 all rights reserved