跳到主要内容

egret.Timer

   egret

   public class Timer

继承    egret.Timer → egret.EventDispatcheregret.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
  • 参数
    • delay:number - 计时器事件间的延迟(以毫秒为单位)。建议 delay 不要低于 20 毫秒。计时器频率不得超过 60 帧/秒,这意味着低于 16.6 毫秒的延迟可导致出现运行时问题。
    • repeatCount:number - 指定重复次数。如果为零,则计时器将持续不断重复运行。如果不为 0,则将运行计时器,运行次数为指定的次数,然后停止。

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
}
}