(轉)[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具體沒有深刻研究,區別只是它的編譯方式是使用插件方式,因此不用本身再編譯編譯器,使用官方的就好了。具體看它裏面的幫助,其它地方應該大同小異。php

相關文章
相關標籤/搜索