子包加载
优质
小牛编辑
129浏览
2023-12-01
1.支持分包条件
手q 版本7.7.5
老版本手q 不支持分包加载,会依旧使用整包模式。 Xcode 工程开发不支持分包加载。
2.配置分包
a.在gameConfig.json 中配置分包,标准格式如下:
{
...
"viewMode":1,
"subpackages": [
{
"name": "text",
"root": "subpack1"
},
{
"name": "image",
"root": "subpack2"
}
]
...
}
在gameConfig.json 中配置一个subpackages的列表字段,这个字段未配置或配置的子包数量为0,则认为不使用分包功能。
b.允许配置多个分包,每个分包的目录必须是项目的根目录下的一级子目录
[
main.js
gameConfig.json
subpack1/
--main.js //子包1 入口文件
--a.png //子包2 资源
subpack2/
--main.js //子包2 入口文件
--b.mp3 //子包2 资源
]
c.每个分包必须配置一个name 字段和一个root 字段,name 用于标识不同的子包,不同子包名称name不能相同,所包含的目录root 不能相同。
d.除配置在子包内的资源会被打包到子包中外,其他的根目录下的资源会被打包成一个master包。
3.使用分包加载
使用 BK.loadSubpackage(object)
进行子包加载后,会将下载并且加载子包,并加载子包的main.js入口文件。
object 属性
名称 | 类型 | 说明 |
---|---|---|
name | string | 子包名。对应在gameConfig.json配置的中子包name属性 |
var task = BK.loadSubpackage(
{
name:"text",
success:function(succInfo)
{
BK.Console.log("SubPackage name:"+succInfo.name+" loadSubpackage success");
},
fail:function(failInfo)
{
BK.Console.log("SubPackage name:"failInfo.name+" loadSubpackage failed code"+failInfo.code+" msg:"+failInfo.msg);
},
complete:function()
{
BK.Console.log("loadSubpackage complete");
}
}
);
task.onProgressUpdate(function (progress:number){
BK.Console.log("loadSubpackage Progress:"+progress);
});