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


    最近由于项目的需要,研究了一下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具体没有深入研究,区别只是它的编译方式是使用插件方式,所以不用自己再编译编译器,使用官方的就行了。具体看它里面的帮助,其它地方应该大同小异。

  • 相关阅读:
    回答自己之前的提问!
    阅读《构建之法》第13-17章
    阅读《构建之发》10-12章
    阅读《构建之法 》8,9,10章
    Practise 5.2测试与封装(黑白盒
    Practice5.1 测试与封装5.1
    Practice4 阅读《构建之法》6-7章
    Practice3 阅读《构建之法》1-5章
    “做汉堡”之评价我的队友
    Practice2 结对子之“小学四则运算”
  • 原文地址:https://www.cnblogs.com/wonderKK/p/3798317.html
Copyright © 2020-2023  润新知