精华 在微信小游戏中加载分包资源
发布于 9 个月前 作者 wsssheep 801 次浏览 来自 分享

首先确保你已经阅读微信中 分包加载的教程 https://developers.weixin.qq.com/minigame/dev/tutorial/base/subpackages.html

按照以上教程,配置好基本的分包内容,这里把分包放在根目录的 pack2文件夹 pack.png

最关键的是如何在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 回复

感谢分享,十分优秀

回到顶部