RT,目前项目中子域也是采用creator工程的形式来实现,尽管可以裁剪掉不要的模块,但是因为游戏本身比较复杂,整个包体还是直逼4M极限,什么压缩合图都有在尝试。
之前想像主域那样,将子域资源也放到远端服务器上,但是微信文档中说到:
开放数据域的 Image 只能使用本地或微信 CDN 的图片,不能使用开发者自己服务器上的图片。对于非本地或非微信 CDN 的图片,可以先从主域 wx.downloadFile() 下载图片文件,再通过 wx.postMessage() 把文件路径传给开放数据域去使用。
虽然不太明白“微信CDN的图片”具体指的是什么,但是子域中似乎没办法像主域那样配置远端服务器地址来实现远程下载资源了,在这边想请教一下各位坛友:
微信小游戏的子域资源可以通过远端下载的形式,或者通过主域传入的方式加载吗?
这边做过的尝试:
- 在子域工程的
sub.js中配置wxDownloader.SUBCONTEXT_ROOT的值为远端资源服务器地址,然而在调试的之后会报所填的地址不是合法域名,就算地址已经加入了微信白名单也是不行。失败。 - 在主域加载图片,生成
cc.SpriteFrame再传入子域,但是这时候在子域内将传入的cc.SpriteFrame赋值给sprite.spriteFrame时会报错。失败。
另外关于微信文档中提到的通过 wx.downloadFile() 下载文件再传入子域使用,这个有没有哪位大神提供一个范例指点一下,有点不理解这个如何实现,比如下载下来的东西要如何转为 cocos 的 sprite,以及这个方法似乎只能用于动态加载的资源,如果是子域工程中 prefab 用到的资源,要如何通过 wx.downloadFile() 来进行远端下载?
麻烦坛友们指点一二,感激不尽!