微信小遊戲,打開玩一會兒後,手動切換到後臺,然後再切回來,會出現黑屏,但是動一下游戲中的按鈕,又可以看到了。
用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();
});
});
完美!