Chrome 切換分頁 當下的update 沒執行

  • Creator 版本:v2.0.9

  • 目标平台: Web (Chrome)

  • 详细报错信息

想請問一下,生命周期回调 update 這裡面 列印當下秒數 如下

每秒鐘都會列印 也是就說 update 這個函数一直有在執行



但我如果切換到別的分頁,再切回原本creator的分頁

可以看到 21秒 直接就跳到34秒 ,也就是說 中間的13秒鐘 是切換到另一個分頁 update 函数並沒有在執行,等切回到原本的頁面 才會繼續執行 update函数

想請教 這種方式有解決的方式嗎 ?

目前碰到的問題是 使用者按下start之後 ,開了另一個分頁去瀏覽網頁 過一陣子回到 creator 這頁 發現怎麼還在跑 …

煩請賜教 謝謝

  • 出现概率:100%
1赞

切换的时候停止计时,回来之后继续计时即可

切换的时候停止计时 是指 ?

我是想讓使用者能夠再切換到不同分頁的時候 coocs update 這個函数 能夠自己在背景執行

浏览器上去其他页面,creator页面的update 包括自定义schedule事件都不会执行。如果只想获取creator页面实际时间,updateMap(dt) {
this.runTime += dt;
console.log(Math.floor(this.runTime))
}

cocos 在浏览器里的update 依赖的是 requestAnimationFrame, 而当切换到后台时, requestAnimationFrame 是不会执行的

为了提高性能和电池寿命,因此在大多数浏览器里,当requestAnimationFrame() 运行在后台标签页或者隐藏的

了解了 謝謝

可以修改cocos代码, 使用cocos 自己依靠setTimeout 实现的 _stTime 和 _ctTime

并且修改cocos 对于EVENT_HIDE 的监听, 不让游戏暂停就可以了

以上都在CCGame.js中可以看到

那另外再請教 而当切换到后台时

有方式可以使creator页面的update 包括自定义schedule事件都繼續執行嗎 ?
相當於遊戲在后台還是在繼續再進行(自動練功的概念 )

其实自动练功最好还是返回前台的时候计算一下时间差, 然后再自己做插值把经验加上去
毕竟setTimeout没有requestAnimationFrame 流畅

1赞