包 | flash.utils |
类 | public class Timer |
继承 | Timer EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
start()
方法来启动计时器。为 timer
事件添加事件侦听器,以便将代码设置为按计时器间隔运行。
可以创建 Timer 对象以运行一次或按指定间隔重复运行,从而按计划执行代码。根据 SWF 文件的帧速率或 Flash Player 的环境(可用内存及其他因素),Flash Player 或 Adobe AIR 调度事件的间隔可能稍有不同。例如,如果某个 SWF 文件设置为以每秒 10 帧 (fps)(也就是 100 毫秒的间隔)的速度播放,但计时器设置为在 80 毫秒时触发事件,则将按接近于 100 毫秒的间隔触发事件。 根据应用程序的内部帧速率,应用程序调度事件的间隔可能稍有不同。大量耗费内存的脚本也可能使事件发生偏差。
另请参见
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentCount : int [只读 (read-only)] 计时器从 0 开始后触发的总次数。 | Timer | ||
delay : Number 计时器事件间的延迟(以毫秒为单位)。 | Timer | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
repeatCount : int 设置的计时器运行总次数。 | Timer | ||
running : Boolean [只读 (read-only)] 计时器的当前状态;如果计时器正在运行,则为 true,否则为 false。 | Timer |
方法 | 定义方 | ||
---|---|---|---|
使用指定的 delay 和 repeatCount 状态构造新的 Timer 对象。 | Timer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
如果计时器正在运行,则停止计时器,并将 currentCount 属性设回为 0,这类似于秒表的重置按钮。 | Timer | ||
设置循环操作动态属性的可用性。 | Object | ||
如果计时器尚未运行,则启动计时器。 | Timer | ||
停止计时器。 | Timer | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
每当 Timer 对象达到根据 Timer.delay 属性指定的间隔时调度。 | Timer | |||
每当它完成 Timer.repeatCount 设置的请求数后调度。 | Timer |
currentCount | 属性 |
currentCount:int
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
计时器从 0 开始后触发的总次数。如果已重置了计时器,则只会计入重置后的触发次数。
public function get currentCount():int
delay | 属性 |
delay:Number
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
计时器事件间的延迟(以毫秒为单位)。如果在计时器正在运行时设置延迟间隔,则计时器将按相同的 repeatCount
迭代重新启动。
public function get delay():Number
public function set delay(value:Number):void
Error — 如果指定的延迟为负数或不是有限数,则将引发异常。 |
repeatCount | 属性 |
repeatCount:int
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
设置的计时器运行总次数。如果重复计数设置为 0,则计时器将持续不断运行,直至调用了 stop()
方法或程序停止。如果重复计数不为 0,则将运行计时器,运行次数为指定的次数。如果设置的 repeatCount
总数等于或小于 currentCount
,则计时器将停止并且不会再次触发。
public function get repeatCount():int
public function set repeatCount(value:int):void
running | 属性 |
running:Boolean
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
计时器的当前状态;如果计时器正在运行,则为 true
,否则为 false
。
public function get running():Boolean
Timer | () | 构造函数 |
public function Timer(delay:Number, repeatCount:int = 0)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
使用指定的 delay
和 repeatCount
状态构造新的 Timer 对象。
计时器不会自动启动;必须调用 start()
方法来启动它。
delay:Number — 计时器事件间的延迟(以毫秒为单位)。 | |
repeatCount:int (default = 0 ) — 指定重复次数。如果为 0,则计时器重复无限次数。如果不为 0,则将运行计时器,运行次数为指定的次数,然后停止。 |
Error — 如果指定的延迟为负数或不是有限数 |
创建了一个 Timer 对象,它在 30 秒内启动(将延迟设置为 30000 毫秒),并在总共 90 秒的时间内重复启动 3 次。(计时器将在第 3 次后停止。)
为 myTimer
计时器添加了两个事件侦听器。第一个事件侦听器是由 TimerEvent.TIMER
事件触发的,每次启动计时器时都会发生此事件。timerHandler()
方法将更改 statusTextField
文本字段的文本以反映所剩的秒数。
注意:Timer 类通过增大 currentCount
属性中的数字来跟踪计时器需要启动的次数 (repeats
)。
在最后一次调用计时器后,将调度 TimerEvent.TIMER_COMPLETE
事件并调用 completeHandler()
方法。completeHandler()
方法将 inputTextField
文本字段的类型从 INPUT
更改为 DYNAMIC
,这意味着用户不再可以输入或更改文本。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.Event; public class Timer_constructorExample extends Sprite { private var statusTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var delay:uint = 30000; private var repeat:uint = 3; private var myTimer:Timer = new Timer(delay, repeat); public function Timer_constructorExample() { inputTextField.x = 10; inputTextField.y = 10; inputTextField.border = true; inputTextField.background = true; inputTextField.height = 200; inputTextField.width = 200; inputTextField.multiline = true; inputTextField.wordWrap = true; inputTextField.type = TextFieldType.INPUT; statusTextField.x = 10; statusTextField.y = 220; statusTextField.background = true; statusTextField.autoSize = TextFieldAutoSize.LEFT; myTimer.start(); statusTextField.text = "You have " + ((delay * repeat) / 1000) + " seconds to write your response."; myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler); addChild(inputTextField); addChild(statusTextField); } private function timerHandler(e:TimerEvent):void{ repeat--; statusTextField.text = ((delay * repeat) / 1000) + " seconds left."; } private function completeHandler(e:TimerEvent):void { statusTextField.text = "Times Up."; inputTextField.type = TextFieldType.DYNAMIC; } } }
reset | () | 方法 |
public function reset():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
如果计时器正在运行,则停止计时器,并将 currentCount
属性设回为 0,这类似于秒表的重置按钮。然后,在调用 start()
后,将运行计时器实例,运行次数为指定的重复次数(由 repeatCount
值设置)。
另请参见
start | () | 方法 |
stop | () | 方法 |
public function stop():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
停止计时器。如果在调用 stop()
后调用 start()
,则将继续运行计时器实例,运行次数为剩余的 重复次数(由 repeatCount
属性设置)。
另请参见
timer | 事件 |
flash.events.TimerEvent
flash.events.TimerEvent.TIMER
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
每当 Timer 对象达到根据 Timer.delay
属性指定的间隔时调度。
timer
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| 已达到其间隔的 Timer 对象。 |
timerComplete | 事件 |
flash.events.TimerEvent
flash.events.TimerEvent.TIMER_COMPLETE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
每当它完成 Timer.repeatCount
设置的请求数后调度。
timerComplete
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| 已完成其请求的 Timer 对象。 |
TimerExample
类来说明如何将侦听器方法 timerHandler()
设置为侦听要调度的新 TimerEvent。计时器将在调用 start()
时启动,并且之后将调度计时器事件。
package { import flash.utils.Timer; import flash.events.TimerEvent; import flash.display.Sprite; public class TimerExample extends Sprite { public function TimerExample() { var myTimer:Timer = new Timer(1000, 2); myTimer.addEventListener("timer", timerHandler); myTimer.start(); } public function timerHandler(event:TimerEvent):void { trace("timerHandler: " + event); } } }