美文网首页cocos creator
微信小游戏开发(9)-分包加载

微信小游戏开发(9)-分包加载

作者: 半缕阳光 | 来源:发表于2018-08-31 10:11 被阅读384次

随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以微信推出了小游戏分包加载这一个功能。

所谓的分包加载,即把游戏内容按照一定的规则拆分成几个包,在首次启动时先下载必要的包,这个必要的包我们称为【主包】,开发者可以在主包内触发其他分包的下载,从而把首次下载的耗时分散到游戏运行中。

分包加载包大小限制

目前小游戏分包大小有如下限制:

整个小游戏所有包大小不超过8M

单个分包/主包大小不能超过4M

分包配置

需要在game.json中配置分包信息。

假设游戏的目录结构如下:


|----game.js

|----game.json

|----images

|    |----a.png

|    |----b.png

|----stage1

|    |----game.js

|    |----images

|         |----1.png

|         |----2.png

|----stage2.js

我们将stage1文件夹作为一个分包,把stage2.js作为一个分包,那么在game.json中的配置为:


{

    “subpackages”: [

        {

            “name”: “stage1”,

            “root”: “stage1”  //可指定一个目录,根目录下game.js会作为入口文件,目录下所有资源将会统一打包

        },

        {

            “name”: “stage2”,

            “root”: “stage2.js” //也可以指定一个JS文件

        }

    ]

}

配置在subpackages中的目录或js文件,将按照配置打包成一个个【分包】,没有配置在subpackages中的目录或者js,将会被打包到主包中。

分包加载

微信提供了wx.loadSubpackage() API来触发分包的下载,调用wx.loadSubpackage后,将触发分包的下载与加载。

在加载完成之后,通过wx.loadSubpackage的success函数来通知加载完成。

同时,wx.loadSubpackage会返回一个LoadSubpackageTask,可以通过LoadSubpackageTask获取当前下载进度。

示例代码:


const loadTask = wx.loadSubpackage({

    name: 'stage1', // name可以填为name或者root

    success: function(res){

        //分包加载完成后通过success回调

    },

    fail: function(res){

        //分包加载失败通过fail回调

    }

})

loadTask.onProgressUpdate(res => {

    console.log('下载速度',res.progress);

    console.log('已经下载的数据长度',res.totalBytesWritten);

    console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)

})

老版本兼容

由微信后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另一份是整包的兼容代码。对于老客户端,会去下载整包代码启动。

开发者在基础库2.1.0以下版本不需要调用wx.loadSubpackage触发加载,因为2.1.0以下版本不存在wx.loadSubpackage方法。

老版本下,需要开发者调用require触发分包入口文件的加载。例如:


require(‘stage1/game.js’)

如果不打算兼容老版本,开发者可以通过mp小游戏后台配置端屏蔽2.1.0以下基础版的用户。

已知BUG

目前Android无法加载分包下的字体文件,预计会在下个客户端版本中修复。

本节内容就为大家介绍到这里,下节将为大家介绍小游戏音频播放的相关内容。

学习是一条令人时而喜极而泣,时而郁郁寡欢的道路。如果您觉得这篇文章对您有所帮助,请您酌情赞赏!

相关文章

  • 微信小游戏开发(9)-分包加载

    随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以微信推出了小游戏分包加载这一个功能。 所谓的...

  • 微信小游戏开发之CocosCreator资源加载方式

    主题 Cocos Creator中图片、Json等资源的动态加载 特别说明 CocosCreator微信小游戏开发...

  • 小程序学习笔记-分包加载文档

    分包加载 微信客户端 6.6.0,基础库 1.7.3 及以上版本开始支持。开发者工具请使用 1.01.171215...

  • egret微信小游戏相关

    官方文档 微信小游戏快速上手egret微信小游戏开发指南菜鸟|Egret微信小游戏好友排行榜教程小程序与小游戏获取...

  • 微信小程序:分包报错

    微信提供了分包加载目前小程序分包大小有以下限制: 整个小程序所有分包大小不超过 8M 单个分包/主包大小不能超过 ...

  • 2019-06小程序升级简要

    微信小程序分包加载 包的限时 整个小程序所有分包大小不超过 8M 单个分包/主包大小不能超过 2M 分包规则(普通...

  • 2018-10-26

    如何利用微信小游戏的分包加载机制突破4M代码包体积限制 相信大家度过了一个不错的端午假期,在端午前夕,即6月15日...

  • 微信小程序分包加载设置

    设置分包加载 微信小程序分包限制为: 主包或者单个分包最大为2M 整体小程序所有包最大为8M 为什么需要设置分包?...

  • 微信小游戏开发教程、小游戏资讯、小游戏demo合集

    一、微信官方游戏教程 小游戏简易教程 小游戏API大全 小游戏开发工具 二、微信小游戏图标资源 Game-icon...

  • 如何“微创新”一个微信小游戏?

    8月17日,微信小游戏团队发布《致小游戏开发者的一封信》,首次对外全面阐述微信小游戏平台理念,表示优秀的微信小游戏...

网友评论

    本文标题:微信小游戏开发(9)-分包加载

    本文链接:https://www.haomeiwen.com/subject/tcfswftx.html