protocolbuffer默認(rèn)支持java, python 和c++,其他的語言需要自己編寫代碼生成器他語言的代碼.
不過官網(wǎng)也提到過ActionScript3的支持,點(diǎn)擊看這里
protobuf-actionscript3包括ActionScript3的序列號(hào)及反序列化的as源碼.以及protoc的as3代碼生成器的C++代碼
另外, protobuf-actionscript3還需要一個(gè)加密庫as3crypto支持,需要一并下載
當(dāng)然, protobuf 庫也是最重要的.
下面說明如何編譯出支持as3的protoc代碼生成器:
1. 將protobuf-actionscript3庫中compiler\as3目錄拷貝到protobuf庫的src\google\protobuf\compiler下.目錄結(jié)構(gòu)如下:
as3\
cpp\
java\
python\
code_generator.cc
command_line_interface.cc
...
2.打開protobuf工程中的sln, 在libprotoc添加剛才添加的as3目錄下的所有文件
3. 在protoc工程的main.cc中添加
google::protobuf::compiler::as3::As3Generator as3_generator;
cli.RegisterGenerator("--as3_out", &as3_generator,
"Generate ActionScript source file.");
4. 打開as3_file.h
注釋掉以下代碼
namespace protobuf {
class FileDescriptor; // descriptor.h
namespace io {
class Printer; // printer.h
}
namespace compiler {
class OutputDirectory; // code_generator.h
}
}
包含內(nèi)添加
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/compiler/code_generator.h>
#include <google/protobuf/io/printer.h>
5. 編譯出protoc.exe
6. 準(zhǔn)備proto文件, 使用protoc.exe使用類似CPP生成的方式進(jìn)行生成
7. 將protobuf-actionscript里的as3-lib及下載好的加密的swc整合到自己的flash工程即可開始使用