微信小游戏,打开玩一会儿后,手动切换到后台,然后再切回来,会出现黑屏,但是动一下游戏中的按钮,又可以看到了。
用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();
});
});
完美!