不需要的話将下面的注釋掉
生命周期
在遊戲中,使用者可以切換應用的前背景。在使用者進入背景時,關閉遊戲邏輯、渲染邏輯、背景音樂,可以保證更好的使用者體驗。
白鹭引擎從 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();
}
}
} )