日期和事件是在 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 | 在指定的延迟(单位是毫秒)后运行指定的函数 |