Timer 是时钟管理类,它是一个单例,不要手动去new实例化此类,应该通过 Laya.timer 访问。
1.延迟执行
/**延迟执行一次,无论循环多少次,也只执行一次
* @param caller 执行域(this)。
* @param method 定时器回调函数——只会执行一次
* @param args 回调参数。
*/
callLater(caller: any, method: Function, args?: Array<any>): void;
示例代码
2.定时执行
基于时间单位:分为基于毫秒和基于帧率
基于执行次数:分为执行一次和间隔循环
执行一次
/**
* 定时执行一次。
* @param delay 延迟时间(单位为毫秒)。
* @param caller 执行域(this)。
* @param method 定时器回调函数。
* @param args 回调参数。
* @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
*/
once(delay: number, caller: any, method: Function, args?: Array<any>, coverBefore?: boolean): void;
/**
* 定时执行一次(基于帧率)。
* @param delay 延迟几帧(单位为帧)。
* @param caller 执行域(this)。
* @param method 定时器回调函数。
* @param args 回调参数。
* @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
*/
frameOnce(delay: number, caller: any, method: Function, args?: Array<any>, coverBefore?: boolean): void;
间隔循环
/**
* 定时重复执行。
* @param delay 间隔时间(单位毫秒)。
* @param caller 执行域(this)。
* @param method 定时器回调函数。
* @param args 回调参数。
* @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
* @param jumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次
*/
loop(delay: number, caller: any, method: Function, args?: Array<any>, coverBefore?: boolean, jumpFrame?: boolean): void;
/**
* 定时重复执行(基于帧率)。
* @param delay 间隔几帧(单位为帧)。
* @param caller 执行域(this)。
* @param method 定时器回调函数。
* @param args 回调参数。
* @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
*/
frameLoop(delay: number, caller: any, method: Function, args?: Array<any>, coverBefore?: boolean): void;
3.定时器的暂停和恢复
/**
* 暂停时钟————暂停所有 Timer
*/
pause(): void;
/**
* 恢复时钟————恢复所有 Timer
*/
resume(): void;
网友评论