命令
1 | # debug |
资源加载
外网资源
复制一份资源目录,把需要丢到包里面的资源移除出来,然后重新生成default.res.json
的内容,目录结构要保持白鹭一致。然后修改main.ts
里面加载res.json
的地方。在然后把外网资源发布到外网web服务器。
1 | // 原来 |
包资源加载
复制一份资源目录,把需要外网加载的资源移除出来,然后重新生成default.res.json
的内容,目录结构要保持白鹭一致。不需要做任何的代码修改
资源跨域处理
在main.ts
的createChildren
开头加上代码
1 | // 图片资源跨域 |
第三方库丢失
gameThirdScriptError
xxxxx is not defined
ReferenceError: xxxxx is not defined
解决的方法,
- 将js库手写一个ts库
- 引入js库时,将库丢到
window
里面,例如我有一个库xxxxx
,需要在js库代码最后面添加window.xxxxx = xxxxx
坑
- 音效不能连续播放,同一个音效同一时间只能播放一个
- 音效播放间隔不能太短,建议弄个0.2秒左右的间隔
- 未播放过的音效,获取的时候音效长度都是0
https://blog.csdn.net/qq_23375733/article/details/81229223
https://blog.csdn.net/qq_30117429/article/details/79164833
分包加载
创建subpackage.ts
在项目的scripts/wxgame
目录里面创建subpackage.ts
1 | import * as path from 'path'; |
修改config.wxgame.ts
- 将 ManifestPlugin 替换为 SubPackagePlugin (build 和 publish)
- 修改 config.wxgame.ts 中的 CleanPlugin,将 subpackage 对应的目录清除
1 | /// 阅读 api.d.ts 查看文档 |
创建EgretSubpackageLoading.js
发布微信后,在微信的主目录里面,即egret.wxgame.js
的目录,创建EgretSubpackageLoading.js
1 | class EgretSubPackageLoading extends egret.DisplayObjectContainer { |
修改game.json
修改微信小游戏项目的 game.json,引入 subpackages 属性实现分包加载
1 | { |
修改game.js
修改微信小游戏项目的 game.js,添加调用 wx.loadSubPackage 的逻辑
1 | require('./weapp-adapter.js'); |