小游戏平台管理集合(2)
分包加载模块
简单使用分包加载功能,测试工具(微信开发工具)
代码块
module manager {
/**微信分包 [支持基础库1.7.3以上版本,2.1.0以上分包加载,2.1.0以下兼容处理(在game.js加入require('sub_a/game.js'))]*/
export class LoadSubManager {
private static mIns: LoadSubManager;
public static get ins(): LoadSubManager {
if (this.mIns == null) {
this.mIns = new LoadSubManager();
}
return this.mIns;
}
public constructor() {
}
/**加载分包 */
public loadSubpackage(_name: string, _callback: Function) {
if (!window["wx"].loadSubpackage) {
console.log("loadSubpackage->", _name, "skip");
_callback && _callback();
return;
}
console.log("loadSubpackage->", _name, "start");
let loadTask = window["wx"].loadSubpackage({
name: _name,
success: (res) => {
console.log("loadSubpackage->", _name, "success");
_callback && _callback();
},
fail: (res) => {
console.log("loadSubpackage->", _name, "fail");
let stokey: number = egret.setTimeout(() => {
egret.clearTimeout(stokey);
this.loadSubpackage(_name, _callback);
}, this, 1000);
}
});
}
}
export class LoadSubType {
public static sub_a = "sub_a";
public static sub_b = "sub_b";
}
}
说明
我粘贴的是简单的流程操作,可直接使用。
大概说一下项目之前碰到的问题:
1.如果是QQ小游戏的话,真机运行可能会有异常,在每个分包的game.json中加下列代码:
module.exports = function(){ }