ActionScript3.0從入門到高手教程全集(二)日期和定時器的處理
ActionScript3.0從入門到高手教程全集(二)日期和定時器的處理
上一章我們學(xué)習了面向?qū)ο蟮木幊,下面我們將接連學(xué)習,時間,字符串,xml,數(shù)組,錯誤等
的處理,學(xué)習完這些我們會進行大量的實例練習。加油各位同學(xué)。
【時間和日期的處理】
ActionScript 3.0 提供了多種強大的手段來管理日歷日期、時間和時間間隔。
以下兩個主類提供了大部分的計時功能:Date 類和 flash.utils 包中的新 Timer 類。
本章內(nèi)容包括下面四個部分:
日期和時間基礎(chǔ)知識
管理日歷日期和時間
控制時間間隔
示例:簡單的模擬時鐘
在ActionScript 中,可以使用 Date 類來表示某一時刻,其中包含日期和時間信息。
Date實例中包含各個日期和時間單位的值,其中包括年、月、日、星期、小時、分鐘、秒、毫秒以及時區(qū)。
ActionScript還包括Timer類,您可以使用該類在一定延遲后執(zhí)行動作,或按重復(fù)間隔執(zhí)行動作。
【通常用做定時器,很重要】
【創(chuàng)建Date對象】
Date 類是所有核心類中構(gòu)造函數(shù)方法形式最為多變的類之一。
您可以用以下四種方式來調(diào)用 Date 類。
第一,如果未給定參數(shù),則 Date() 構(gòu)造函數(shù)將按照您所在時區(qū)的本地時間返回包含當前日
期和時間的 Date 對象。下面是一個示例:
var now:Date = new Date();
第二,如果僅給定了一個數(shù)字參數(shù),則 Date() 構(gòu)造函數(shù)將其視為自 1970 年 1 月 1 日以來
經(jīng)過的毫秒數(shù),并且返回對應(yīng)的 Date 對象。
var millisecondsPerDay:int = 1000 * 60 * 60 * 24;
// 獲取一個表示自起始日期 1970 年 1 月 1 日后又過了一天時間的 Date 對象
var startTime:Date = new Date(millisecondsPerDay);
第三, 您可以將多個數(shù)值參數(shù)傳遞給 Date() 構(gòu)造函數(shù)。該構(gòu)造函數(shù)將這些參數(shù)分別視為年、
月、日、小時、分鐘、秒和毫秒,并將返回一個對應(yīng)的' Date 對象。假定這些輸入?yún)?shù)采用
的是本地時間而不是 UTC。以下語句獲取一個設(shè)置為 2000 年 1 月 1 日開始的午夜(本地
時間)的 Date 對象:
var millenium:Date = new Date(2000, 0, 1, 0, 0, 0, 0);
第四,您可以將單個字符串參數(shù)傳遞給 Date() 構(gòu)造函數(shù)。該構(gòu)造函數(shù)將嘗試把字符串解析
為日期或時間部分,然后返回對應(yīng)的 Date 對象。
var nextDay:Date = new Date(“Mon May 1 2006 11:30:00 AM”);
可以使用 Date 類的屬性或方法從 Date 對象中提取各種時間單位的值。下面的每個屬性為
您提供了 Date 對象中的一個時間單位的值:
fullYear 屬性
month 屬性,以數(shù)字格式表示,分別以 0 到 11 表示一月到十二月
date 屬性,表示月中某一天的日歷數(shù)字,范圍從 1 到 31
day 屬性,以數(shù)字格式表示一周中的某一天,其中 0 表示星期日
hours 屬性,范圍從 0 到 23
minutes 屬性
seconds 屬性
milliseconds 屬性
實際上, Date 類為您提供了獲取這些值的多種方式。例如,您可以用四種不同方式獲取
Date 對象的月份值:
month 屬性
getMonth() 方法
monthUTC 屬性
getMonthUTC() 方法
控制時間間隔
Timer 類在每次達到指定的時間間隔時都會調(diào)度計時器事件
要啟動計時器,請先創(chuàng)建 Timer 類的實例,并告訴它每隔多長時間生成一次計時器事件。
例如,下列代碼創(chuàng)建一個每秒調(diào)用一次事件,持續(xù)60秒的Timer實例:
var oneMinuteTimer:Timer = new Timer(1000, 60);
Timer 對象在每次達到指定的間隔時都會調(diào)度 TimerEvent 對象。
如果將 Timer 實例設(shè)置為固定的間隔數(shù),則在達到最后一次間隔時,它還會調(diào)度
timerComplete 事件
以下是一個用來展示Timer類實際操作的小示例應(yīng)用程序
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class ShortTimer extends Sprite
{
public function ShortTimer()
{
// 創(chuàng)建一個新的五秒的 Timer
var minuteTimer:Timer = new Timer(1000, 5);
// 為間隔和完成事件指定偵聽器
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE,
onTimerComplete);
// 啟動計時器計時
minuteTimer.start();
}
public function onTick(event:TimerEvent):void
{
// 顯示到目前為止的時間計數(shù)
// 該事件的目標是 Timer 實例本身。
trace("tick" + event.target.currentCount);
//【此處填寫您要執(zhí)行的代碼】
}
public function onTimerComplete(event:TimerEvent):void
{
trace("Time's Up!");
}
}
}
結(jié)果
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!
本章的例子是一個flash做的時鐘,為了各位同學(xué)更好地學(xué)習,源碼會放到實例教程里,下一章是字符串和數(shù)組的處理。
【ActionScript3.0從入門到高手教程全集(二)日期和定時器的處理】相關(guān)文章:
1.ActionScript從入門到高手教程全集(六) 事件處理
2.ActionScript從入門到高手教程全集(四)錯誤處理
3.ActionScript從入門到高手教程全集(三)字符串的處理
4.ActionScript從入門到高手教程全集(七)幾何相關(guān)的類