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工程即可开始使用