egret.Timer
包 egret
类 public class Timer
继承 egret.Timer → egret.EventDispatcher → egret.HashObject
Timer 类是计时器的接口,它使您能按指定的时间序列运行代码。使用 start() 方法来启动计时器。为 timer 事件添加事件侦听器,以便将代码设置为按计时器间隔运行。可以创建 Timer 对象以运行一次或按指定间隔重复运行,从而按计划执行代码。根据 Egret 的帧速率或运行时环境(可用内存和其他因素),运行时调度事件的间隔可能稍有不同。
公共属性
属性 |
---|
currentCount : number 计时器从 0 开始后触发的总次数 |
delay : number 计时器事件间的延迟(以毫秒为单位) |
repeatCount : number 设置的计时器运行总次数 |
running : boolean 计时器的当前状态;如果计时器正在运行,则为 true,否则为 false |
公共方法
方法 |
---|
Timer(delay:number,repeatCount:number) 使用指定的 delay 和 repeatCount 状态构造新的 Timer 对象 |
reset():void 如果计时器正在运行,则停止计时器,并将 currentCount 属性设回为 0,这类似于秒表的重置按钮 |
start() 如果计时器尚未运行,则启动计时器 |
stop() 停止计时器 |
属性详细信息
currentCount
currentCount : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
计时器从 0 开始后触发的总次数。如果已重置了计时器,则只会计入重置后的触发次数。
delay
delay : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
计时器事件间的延迟(以毫秒为单位)。如果在计时器正在运行时设置延迟间隔,则计时器将按相同的 repeatCount 迭代重新启动。
注意:建议 delay 不要低于 20 毫秒。计时器频率不得超过 60 帧/秒,这意味着低于 16.6 毫秒的延迟可导致出现运行时问题。
repeatCount
repeatCount : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
设置的计时器运行总次数。如果重复计数设置为 0,则计时器将持续不断运行,或直至调用了 stop() 方法或节目停止。如果重复计数不为 0,则将运行计时器,运行次数为指定的次数。如果设置的 repeatCount 总数等于或小于 currentCount,则计时器将停止并且不会再次触发。
running
running : boolean
- 支持版本:Egret 2.4
- 运行平台:Web,Native
计时器的当前状态;如果计时器正在运行,则为 true,否则为 false。
方法详细信息
Timer()
public Timer(delay:number,repeatCount:number)
使用指定的 delay 和 repeatCount 状态构造新的 Timer 对象。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
reset()
public reset():void
如果计时器正在运行,则停止计时器,并将 currentCount 属性设回为 0,这类似于秒表的重置按钮。然后,在调用 start() 后,将运行计时器实例,运行次数为指定的重复次数(由 repeatCount 值设置)。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
start()
public start()
如果计时器尚未运行,则启动计时器。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
stop()
public stop()
停止计时器。如果在调用 stop() 后调用 start(),则将继续运行计时器实例,运行次数为剩余的 重复次数(由 repeatCount 属性设置)。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
示例
/*
* 以下示例使用 Timer 创建计时器,并侦听egret.TimerEvent.TIMER与egret.TimerEvent.TIMER_COMPLETE事件。
*/
class TimerExample extends egret.DisplayObjectContainer {
public constructor() {
super();
const timer: egret.Timer = new egret.Timer(1000, 5);
timer.addEventListener(egret.TimerEvent.TIMER, this.timerFunc, this);
timer.addEventListener(egret.TimerEvent.TIMER_COMPLETE, this.timerComFunc, this);
timer.start();
}
private timerFunc(event: egret.TimerEvent) {
egret.log("timerFunc count" + (<egret.Timer>event.target).currentCount);
//timerFunc count1
//timerFunc count2
//timerFunc count3
//timerFunc count4
//timerFunc count5
}
private timerComFunc(event: egret.TimerEvent) {
egret.log("timerComFunc count" + (<egret.Timer>event.target).currentCount);
////timerFunc count5
}
}