[]切换后台时,引擎如何判断是否停止定时器?
在pc上时,做个简单的测试,
class TestUI extends ui.test.TestPageUI {
constructor() {
super();
this.stage.on(Laya.Event.FOCUS, this, this.onFocus);
this.stage.on(Laya.Event.BLUR, this, this.onBlur);
Laya.timer.frameLoop(1,this,this.onFrameLoop);
}
private onFrameLoop():void{
console.log("delta:",Laya.timer.delta);
}
private onFocus(): void {
console.log("onFocus:");
}
private onBlur(): void {
console.log("onBlur:");
}
}这样子,浏览器在前台的时候,打印每帧的时间间隔,大约在15ms左右。
当点击其他的窗口,导致当前失去焦点(这个时候,窗口还在屏幕前端绘制),并且打印onBlur
失去焦点日志的时候,打印每帧的时间间隔还是约为15.
只有当浏览器最小化,或者新建一个tab页的时候,这个时候也会收到Blur消息,但是这个时候打印的帧率为1000ms左右,
这个是什么原理?我们能获取到这个状态吗?
class TestUI extends ui.test.TestPageUI {
constructor() {
super();
this.stage.on(Laya.Event.FOCUS, this, this.onFocus);
this.stage.on(Laya.Event.BLUR, this, this.onBlur);
Laya.timer.frameLoop(1,this,this.onFrameLoop);
}
private onFrameLoop():void{
console.log("delta:",Laya.timer.delta);
}
private onFocus(): void {
console.log("onFocus:");
}
private onBlur(): void {
console.log("onBlur:");
}
}这样子,浏览器在前台的时候,打印每帧的时间间隔,大约在15ms左右。
当点击其他的窗口,导致当前失去焦点(这个时候,窗口还在屏幕前端绘制),并且打印onBlur
失去焦点日志的时候,打印每帧的时间间隔还是约为15.
只有当浏览器最小化,或者新建一个tab页的时候,这个时候也会收到Blur消息,但是这个时候打印的帧率为1000ms左右,
这个是什么原理?我们能获取到这个状态吗?
1 个回复
Aar0n
赞同来自: