ActionScript中的日期和時間處理
阿新 • • 發佈:2019-02-13
日期和事件是在 ActionScript 程式中使用的一種常見的資訊型別。
Date類和 flash.utils 包中的新 Timer 類提供了大部分的計時功能。
常見日期和時間任務
- 處理 Date 物件;
- 獲取當前日期和時間;
- 訪問各個日期和時間單位;
- 使用日期和時間執行運算;
- 在時區之間進行轉換;
- 執行重複動作;
- 在設定的時間間隔後執行動作;
建立Date物件
Date 類是所有核心類中建構函式方法形式最為多變的類之一。有四種方法來呼叫Date類:
- 如果未給定引數,則 Date() 建構函式將按照所在時區的本地時間返回包含當期日期和時間的Date物件。
var now:Date = new Date();
- 如果僅有一個數字引數,則Date() 建構函式將其視為自1970年1月1日以來經過的毫秒數,並返回對應的Date物件。返回的Date物件會按照所在的本地時區來顯示值。
var millisecondsPerDay:int = 1000 * 60 * 60 * 24;
var startTime:Date = new Date(millisecondsPerDay);
- 可以傳遞多個數值引數給Date()建構函式,該建構函式將這些引數分別視為年、月、日、小時、分鐘、秒和毫秒,並返回對應的Date物件。
var millenium:Date = new Date (2000,0,1,0,0,0,0);
- 可以將單個字串引數傳遞給 Date() 建構函式,該建構函式將嘗試把字串解析為日期或時間部分,然後返回對應的Date物件。
var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM");
如果Date()建構函式無法成功解析該字串,它將不會引發異常。但得到的Date物件將包含一個無效的日期值。
獲取時間單位
Date 物件的屬性:
- fullYear 屬性;
- month 屬性,數字格式,從0到11;
- date 屬性,表示月中某一天的日曆數字,從1到31;
- day 屬性,表示一週中的某一天,0表示星期日;
- hours 屬性,範圍從0到23;
- minutes 屬性;
- seconds 屬性;
- milliseconds 屬性;
執行運算
可以使用Date類對日期和時間執行加法和減法運算。日期值在內部以毫秒的形式儲存,因此應將其他值轉換成毫秒,再進行運算。
時區轉換
在需要將日期轉換時區時,可使用getTimezoneOffset()方法,該方法返回的值表示Date物件的時區與UTC之間相差的分鐘數。
Timer 類(flash.utils.Timer)
Timer類主要用來處理計時函式,可以使用它在每次達到間隔時排程事件。
步驟:
- 建立Timer類的例項,引數是計時器事件的間隔時間和挺值錢生成多少次事件。
var oneMinuteTimer:Timer = new Timer(1000,6)
//建立一個每秒排程一個事件且持續60秒的例項。
- Timer物件在每次達到間隔時會呼叫TimerEvent物件。TimerEvent物件的事件型別是timer(由常量TimerEvent.TIMER 定義)
- 當達到最後一次間隔時,它還會排程timerComplete 事件(由常量 TimerEvent.TIMER_COMPLETE 定義)。
flash.utils 包中的計時函式
函式 | 說明 |
---|---|
clearInterval(id:uint):void | 取消指定的 setIntervar() 呼叫。 |
clearTimeout(id:uint):void | 取消指定的 setTimeout() 呼叫。 |
getTimer():int | 返回自 Adobe Flash Player 被初始化以來經過的毫秒數。 |
setInterval(closure:Function,delay:Number,… arguments):uint | 以指定的間隔(單位是毫秒)執行函式。 |
setTimeout(closure:Function,delay:Number,… arguments):uint | 在指定的延遲(單位是毫秒)後執行指定的函式 |