精华
在微信小游戏中加载分包资源
首先确保你已经阅读微信中 分包加载的教程 https://developers.weixin.qq.com/minigame/dev/tutorial/base/subpackages.html
按照以上教程,配置好基本的分包内容,这里把分包放在根目录的 pack2文件夹
最关键的是如何在Phaser中加载分包, 通常来说我们 只会在 preload() 方法中加载资源,但是其实可以在任何地方加载。
game.load.image()等方法会将加载资源添加到加载列表中,通过调用 game.load.start(); 方法,就会启动加载,加载列表中的文件。 game.load.image(‘help0’, ‘pack2/image/help0.png’); game.load.image(‘help1’, ‘pack2/image/help1.png’); game.load.image(‘help2’, ‘pack2/image/help2.png’); game.load.start();
基本加载代码,在loadSubpackage成功后,调用Phaser的加载方法:
const loadTask = wx.loadSubpackage({
name: 'pack2', // name 可以填 name 或者 root
success: function (res) {
// 分包加载成功后通过 success 回调
game.load.image('help0', 'pack2/image/help0.png');
game.load.image('help1', 'pack2/image/help1.png');
game.load.image('help2', 'pack2/image/help2.png');
game.load.start();
game.load.onFileComplete.add(function (progress, cacheKey, success, totalLoaded, totalFiles){
game.add.image(0 , 80, cacheKey); //文件加载完成后绘制出来
},this);
},
fail: function (res) {
// 分包加载失败通过 fail 回调
console.log('加载失败');
}
})
这里建议使用 game.load.pack()方法, 可以读一个配置文件来加载所有需要的资源, 就不用经常的修改加载代码了。 调用: game.load.pack(‘section’, ‘pack2/pack2.json’);
pack2.json 是通过phaser editor 生成的,你也可以手动写配置
{
"section": [
{
"type": "image",
"key": "help0",
"url": "pack2/image/help0.png",
"overwrite": false
},
{
"type": "image",
"key": "help1",
"url": "pack2/image/help1.png",
"overwrite": false
},
{
"type": "image",
"key": "help2",
"url": "pack2/image/help2.png",
"overwrite": false
}
],
"meta": {
"generated": "1534905720994",
"app": "Phaser Editor",
"url": "http://phasereditor.boniatillo.com",
"version": "1.0",
"copyright": "Arian Fornaris (c) 2015,2016"
}
}
1 回复
感谢分享,十分优秀