您的位置:首页 > 编程语言 > Go语言

(转)[ActionScript 3] Google-ProtoBuf for AS

2014-06-19 23:02 323 查看
最近由于项目的需要,研究了一下protobuf。在这里分享一下经验,具体介绍网上也有不少,可以百度先了解一下。

ProtoBuf在as中主要就是序列反序列化的作用,我们主要用它来代替amf,因为像c++这类语言不支持amf。

1.AS有两种方案,一种是官方的,还是一种是国人写的。这里先介绍官方的。

首先介绍一下proto文件,这个文件主要用来定义描述文件,作用是生成前后台两种类,这样可以省去一边的工作,语法比较简单,这里就不介绍。

2.把proto文件生成as文件,这里需要编译器proto.exe,默认支持c++,java,python.我们得自己安装vs来编译产生支持as的编译器,具体过程就不再描述,可以看protobuf-actionscript3中的说明。可以点击这里下载我已经编译好的程序。

下面介绍编译过程,使用cmd命令

protoc.exe –proto_path= c:\ –as3_out=c:\ options.proto

参数说明

–proto_path proto文件的目录

–as3_out 输出目录

最后跟proto文件名,在输出目录下产生类文件。

protoc.exe –proto_path= c:\ –as3_out=c:\ options.proto

参数说明
–proto_path proto文件的目录
–as3_out 输出目录
最后跟proto文件名,在输出目录下产生类文件。只要将类文件拷贝到项目里边就可以使用了,记得导入 <ignore_js_op>

protoc.rar (198.2 KB, 下载次数: 861)

3.使用方法,导入swc文件.

var byte:ByteArray=new ByteArray;
message.writeToDataOutput(byte);//序列化到byte中;

var msg:Msg=new Msg;

msg.readFromDataOutput(byte);//反序列化message.

使用ProtoBuf后可以跟c++等语言直接传输对象,而不必关心内部的细节,使开发更为方便。我封装了一套socket的类库,可以直接下载来使用。
<ignore_js_op>

NetEngine.rar (514.52 KB, 下载次数: 927)

国人写的那套as的方案protoc-gen-as3具体没有深入研究,区别只是它的编译方式是使用插件方式,所以不用自己再编译编译器,使用官方的就行了。具体看它里面的帮助,其它地方应该大同小异。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: