微信小游戏 protobuf.js 快速解决办法
Posted COCOS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小游戏 protobuf.js 快速解决办法相关的知识,希望对你有一定的参考价值。
最近不少开发者在尝试用 Cocos Creator v1.8 一键发布小游戏时,因为一些技术上的问题导致进程卡壳。集合社区反馈帖子来看,大部分开发者最近卡壳频率最高的问题当属 「protobuf.js 常在微信小游戏环境中运行出错,该怎么破?」
Cocos 插件商店之前曾上过一款叫 pbkiller 的插件。C姐联系了开发者张晓衡老师,希望他能为我们提供几个解决方案:
一、使用预编译 js
二、protobuf.js 5.x 动态加载方案
此方法是将 ProtoBuf.Util.fetch 函数替换成 cc.loader.load 函数。
之后加载 proto 文件需要使用异步方式
三、 protobuf.js 6.x 动态加载方案
protobuf.js 6.x 动态加载可以解决加载问题,但 protobuf.js 6.x 使用了 new Function() 函数动态生成代码,导致在实例化 proto 对象时微信会报错,此方法暂时不可取。
微信不支持 XMLHTTPRequest API,而 Protobuf 中正好使用了此 API,思路是使用 cc.loader 代替 XMLHTTPRequest。
需要注意的是,在微信开发者工具的运行环境中,当使用 cc.loader.load、cc.loader.loadRes 等函数时会经常出现回调不响应的情况(切换场景也不生效),需要全部关闭微信开发者工具,或清空缓存,再通过 Creator 运行游戏,有时可能还会要求反复操作多次才能生效。
以上是关于微信小游戏 protobuf.js 快速解决办法的主要内容,如果未能解决你的问题,请参考以下文章
十分钟学会微信小游戏,攀登不止小游戏制作(IVX 快速开发教程十一)