微信小游戏重新激活时黑屏

微信小游戏,打开玩一会儿后,手动切换到后台,然后再切回来,会出现黑屏,但是动一下游戏中的按钮,又可以看到了。

用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();
  });
});

完美!

你可能感兴趣的:(微信小游戏,Javascript,游戏)