cocos-creator使用protobufjs(ts版)

之前在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

5赞

ScriptingCore:: evaluateScript fail fs
ScriptingCore:: evaluateScript fail bytes
ScriptingCore:: evaluateScript fail long

你好,主要是动态require的时候,这几个库找不到的问题没法解决。
修改了js-bindings下面的脚本,还是会报错

需要定制化creator.修改cocos2d-x的require为ccrequire,请参考:http://forum.cocos.com/t/cocos2d-x-js-or-cocos-creator-protobufjs/47186 进行修改

有qq吗?能加个么?我把底层require修改过了。 但是并没有效果,动态加载时候还是出错了

mark