1. 程式人生 > >ActionScript中的日期和時間處理

ActionScript中的日期和時間處理

日期和事件是在 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 在指定的延遲(單位是毫秒)後執行指定的函式