W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
隨著小游戲的玩法越來(lái)越豐富,開(kāi)發(fā)者對(duì)于擴(kuò)大包大小的需求越來(lái)越強(qiáng)烈,所以我們推出了小游戲分包加載這一個(gè)功能。 所謂的分包加載,即把游戲內(nèi)容按一定規(guī)則拆分這幾包,在首次啟動(dòng)時(shí)先下載必要的包,這個(gè)必要的包我們稱為「主包」,開(kāi)發(fā)者可以在主包內(nèi)觸發(fā)其它分包的下載,從而把首次啟動(dòng)的下載耗時(shí)分散到游戲運(yùn)行中。
目前小游戲分包大小有以下限制:
整個(gè)小游戲所有分包大小不超過(guò) 16M (請(qǐng)使用0.1.29版本開(kāi)發(fā)者工具進(jìn)行上傳)
單個(gè)分包/主包大小不能超過(guò) 4M
需要先在 game.json
配置分包信息。
假設(shè)游戲的目錄結(jié)構(gòu)如下:
├── game.js
├── game.json
├── images
│ ├── a.png
│ ├── b.png
├── stage1
│ └── game.js
│ └── images
│ ├── 1.png
│ ├── 2.png
└── stage2.js
game.json
中的配置:
{
{
...
"subpackages": [
{
"name": "stage1",
"root": "stage1/" // 可以指定一個(gè)目錄,目錄根目錄下的 game.js 會(huì)作為入口文件,目錄下所有資源將會(huì)統(tǒng)一打包
}, {
"name": "stage2",
"root": "stage2.js" // 也可以指定一個(gè) JS 文件
}
]
...
}
配置在 subpackages
字段內(nèi)的目錄或 js 文件,將按照配置打包成一個(gè)個(gè)「分包」,沒(méi)有配置在 subpackages
中的目錄和 js,將會(huì)被打包到主包中。
注:目前不支持將開(kāi)放數(shù)據(jù)域目錄(即 openDataContext
配置目錄)設(shè)置為分包或置于某個(gè)分包下。
我們提供了 qq.loadSubpackage() API 來(lái)觸發(fā)分包的下載,調(diào)用 qq.loadSubpackage 后,將觸發(fā)分包的下載與加載,在加載完成后,通過(guò) qq.loadSubpackage 的 success 回調(diào)來(lái)通知加載完成。
同時(shí),qq.loadSubpackage 會(huì)返回一個(gè) LoadSubpackageTask,可以通過(guò) LoadSubpackageTask 獲取當(dāng)前下載進(jìn)度。
示例代碼:
const loadTask = qq.loadSubpackage({
name: 'stage1', // name 可以填 name 或者 root
success(res) {
// 分包加載成功后通過(guò) success 回調(diào)
},
fail(res) {
// 分包加載失敗通過(guò) fail 回調(diào)
}
})
loadTask.onProgressUpdate(res => {
console.log('下載進(jìn)度', res.progress)
console.log('已經(jīng)下載的數(shù)據(jù)長(zhǎng)度', res.totalBytesWritten)
console.log('預(yù)期需要下載的數(shù)據(jù)總長(zhǎng)度', res.totalBytesExpectedToWrite)
})
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: