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