微信小遊戲重新激活時黑屏

微信小遊戲,打開玩一會兒後,手動切換到後臺,然後再切回來,會出現黑屏,但是動一下游戲中的按鈕,又可以看到了。

用wx.onShow()方法,把離屏畫布再往在屏畫布複製一下:

wx.onShow(function(){
  updateCanvas();
});

但是發現還是沒有效果,奇怪的是動一下游戲中的按鈕又顯示了(因爲有複製畫布),因此懷疑時機不對,加個timer試試:

wx.onShow(function(){
  setTimeout(function(){
    updateCanvas();
  },200);
});

可以了。但是timeout時間放多長合適,測試發現10,20毫秒不行,50毫秒偶爾可以。

後來發現一個函數:requestAnimationFrame,意思是系統刷新顯示幀時調用,試試看:

wx.onShow(function(res){
  requestAnimationFrame(function () {
    updateCanvas();
  });
});

完美!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章