之前在cocos2d-x-js中以及creator(js)中,使用protobufjs,其实设置都差不多。今天群里有个朋友,提出疑问,typescript如何使用呢,今天下午抽时间总结了,做个记录分享,让使用的人参照一下,
环境
- cocos creator 1.5
- protobufjs 6.7.3
安装依赖
新建HelloTS项目,在项目的根目录下,运行命令
- npm install protobufjs
编写定义文件awesome.proto:
// awesome.proto package awesomepackage; syntax = "proto3"; message AwesomeMessage { string awesome_field = 1; // becomes awesomeField }
命令生成:
进入node_modules.bin目录,或者添加到环境变量path里
- 第一步生成js:
- pbjs -t static-module -w commonjs -o bundle.js awesome.proto
- 第二步生成ts:
- pbts -o bundle.d.ts bundle.js
编码:
把bundle.d.ts跟bundle.js导入进Script目录,在主类的TS文件中,onload添加如下代码:
import { awesomepackage } from "./bundle"; let message = awesomepackage.AwesomeMessage.create({ awesomeField: "hello" }); let buffer = awesomepackage.AwesomeMessage.encode(message).finish(); let decoded = awesomepackage.AwesomeMessage.decode(buffer); cc.log(buffer); cc.log(decoded);
运行项目,看log平台输出
需要定制化creator.修改cocos2d-x的require为ccrequire,如何定制,不然会出现下面这个打印,android会黑屏:
ScriptingCore:: evaluateScript fail fs
ScriptingCore:: evaluateScript fail bytes
ScriptingCore:: evaluateScript fail long
请参考下面这个帖子
另外一篇,cocos2d-x-js和creator(js)使用protobufjs
http://forum.cocos.com/t/cocos2d-x-js-or-cocos-creator-protobufjs/47186