天天看點

egret websocket 兩個浏覽器調試 發現在背景運作的浏覽器不能重新整理 是egret設定問題

不需要的話将下面的注釋掉

生命周期

在遊戲中,使用者可以切換應用的前背景。在使用者進入背景時,關閉遊戲邏輯、渲染邏輯、背景音樂,可以保證更好的使用者體驗。

白鹭引擎從 4.1 版本開始引入生命周期管理器:egret.lifecycle。其代碼示例如下:

egret.lifecycle.onPause = ()=> {

console.log(“app 進入背景”);

egret.ticker.pause(); // 關閉渲染與心跳

}

egret.lifecycle.onResume = ()=> {

console.log(“app 進入前台”);

egret.ticker.resume(); // 打開渲染與心跳

}

針對不同的遊戲運作環境,開發者可以對生命周期管理器進行擴充,以手機QQ舉例,其擴充如下:

// 手機QQ注冊了 appInBackgound 這一變量,在 TypeScript 中進行聲明,防止報錯

declare interface Window {

appInBackgound:boolean;

}

egret.lifecycle.addLifecycleListener( (context)=>{

// 方法一:通過事件監聽的方式進行通知

document.addEventListener(“qbrowserVisibilityChange”, function(e:any){

if (e.hidden){

context.pause();

}

else{

context.resume();

};

});

// 方法二:在每一幀進行判斷

context.onUpdate = ()=> {

if (window.appInBackgound){

context.pause();

}

else{

context.resume();

}

}

} )