protocolbuffer默認支持java, python 和c++,其他的語言需要自己編寫代碼生成器他語言的代碼.
不過官網也提到過ActionScript3的支持,點擊看這裡
protobuf-actionscript3包括ActionScript3的序列號及反序列化的as源碼.以及protoc的as3代碼生成器的C++代碼
另外, protobuf-actionscript3還需要一個加密庫as3crypto支持,需要一並下載
當然, protobuf 庫也是最重要的.
下面說明如何編譯出支持as3的protoc代碼生成器:
1. 將protobuf-actionscript3庫中compiler\as3目錄拷貝到protobuf庫的src\google\protobuf\compiler下.目錄結構如下:
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
}
}
包含內添加
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/compiler/code_generator.h>
#include <google/protobuf/io/printer.h>
5. 編譯出protoc.exe
6. 准備proto文件, 使用protoc.exe使用類似CPP生成的方式進行生成
7. 將protobuf-actionscript裡的as3-lib及下載好的加密的swc整合到自己的flash工程即可開始使用