/**
* 定时执行一次。
* @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;
如果不设置最后一个参数,则会自动覆盖之前的延迟执行。因此需要手动设置为false;
应用的位置:
/**
* 在舞台中央按间隔时间显示多个字符串
* @param msgs 字符串数组
* @param fontSize 字体
* @param color 颜色
* @param delTime 延时
*/
public showCenterFloatMsgsByDelTime(msgs:Array<string>,fontSize:number = 28,color:string = "#ff0000",delTime:number):void
{
//计时器
let timer:number = 0;
for(let i = 0; i < msgs.length; ++i)
{
timer = this._showCenterFloatMsgsByDelTime(msgs[i],fontSize,color,delTime,timer);
}
}
/*在舞台中央按间隔时间显示多个字符串的私有方法*/
private _showCenterFloatMsgsByDelTime(msg:string,fontSize:number = 28,color:string = "#ff0000",delTime:number,timer:number):number
{
//延迟调用在舞台中央显示一行文本
Laya.timer.once(timer,this,this.showCenterFloatMsg,[msg,fontSize,color],false);
return timer + delTime;
}