最近发现自己的微信小游戏在启动完毕后仍然会有一秒以上的黑屏才真正进入游戏场景

仔细排查了一下大概是两个方面的原因

1.远程资源加载

2.微信广告加载

由于游戏资源较多,远超微信所限制的4M/8M

因此打包时将整个res目录全部搬到了资源服务器

因此玩家加载完微信包体后,仍需要下载部分图片资源才能绘制游戏场景

此时就会出现短暂黑屏,解决方案是保留res目录以及部分首场景的文件

将其留在微信包内,以下我们称这个res目录“微包”

生成微包比较麻烦,目前我的做法是先把游戏内除首场景以外的部分全部删掉

然后打出微包(保证微包体积足够小)

再恢复工程重新打出正式包

并把正式包的res目录存放至资源服务器

再将前面所做的微包放在包内(不超过4M)

 

然而这样一来有时还会出现黑屏

究其原因是仍有首场景需要的文件未包含在微包内

进行了下载请求

我只能一个个把他们揪出来塞回微包内

揪的方法如下

wx-downloader

downloadRemoteFile

中打断点,找出请求的文件,放回微包

自己试了一下只有一个奇怪的文件会这样

 

至于微信广告的初始化和加载

只需要在首场景加载完成后延后一帧执行即可