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

(转)[ActionScript 3] Google-ProtoBuf for AS的更多相关文章

  1. google protobuf安装与使用

    google protobuf是一个灵活的.高效的用于序列化数据的协议.相比较XML和JSON格式,protobuf更小.更快.更便捷.google protobuf是跨语言的,并且自带了一个编译器( ...

  2. VS2013编译google protobuf 出现问题error C3861: “min”:

    问题描述: 今天用vs2013编译protobuf 2.4.1 报错: 错误 3 error C3861: "max": 找不到标识符 f:\google\protobuf\pro ...

  3. google protobuf初体验

    最近在读别人代码的时候发现一个的东西,名字叫protobuf, 感觉挺好用的,写在这里,留个记录.那么什么是protobuf 呢?假如您在网上搜索,应该会得到类似这样的文字介绍: Google Pro ...

  4. Google protobuf proto文件编写规则

    转载自: http://blog.csdn.net/yi_ya/article/details/40404231 1. 简单介绍 protobuf文件:就是定义你要的消息(类似java中的类)和消息中 ...

  5. window下编译并使用google protobuf

    参考网址: http://my.oschina.net/chenleijava/blog/261263 http://www.ibm.com/developerworks/cn/linux/l-cn- ...

  6. GOOGLE PROTOBUF开发者指南

    原文地址:http://www.cppblog.com/liquidx/archive/2009/06/23/88366.html 译者: gashero 目录 1   概览 1.1   什么是pro ...

  7. google protobuf ios开发使用

    简介: protobuf 即 google protocol buffer 是一种数据封装格式协议: 比如其他经常用的xml,json等格式:protobuf的优势是效率高,同样的一份数据使用prot ...

  8. Google protobuf

    个人理解: 定义.proto文件就是指明消息里包含的成员和类型,protoc会compile成相应的java文件包含interface和implementation class,然后在构建messag ...

  9. google protobuf 简单实例

    1.定义proto文件: User.proto package netty; option java_package="myprotobuf"; option java_outer ...

  10. google protobuf使用

    下载的是github上的:https://github.com/google/protobuf If you get the source from github, you need to gener ...

随机推荐

  1. CodeForces 805C Find Amir

    直觉. 先走$1$走到$n$,然后从$n$走到$2$,然后从$2$走到$n-1$,然后从$n-1$走到$3$.一次花费为$0$,一次花费为$1$. #include <cstdio> #i ...

  2. 基于python中staticmethod和classmethod的区别(详解)

    例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 class A(object):   def foo(self,x):     print "executing foo ...

  3. 「CSA49」Card Collecting Game

    「CSA49」Card Collecting Game 题目大意:有 \(n\) 种卡片,每种有 \(b_i\) 张,如果一个人集齐 \(k\) 张第 \(i\) 种卡片,那么其能获得的得分是 \(\ ...

  4. [BZOJ4028][HEOI2015]公约数数列(分块)

    先发掘性质: 1.xor和gcd均满足交换律与结合率. 2.前缀gcd最多只有O(log)个. 但并没有什么数据结构能同时利用这两个性质,结合Q=10000,考虑分块. 对每块记录这几个信息: 1.块 ...

  5. PHP+MySQL中字符集问题分析

    Character set顾名思义,就是字符.以及字符对应的编码的集合.例如简体中文字符集gb2312就包括简体中文中的所有规定汉字,以及每个汉字对应的代码. Collation,是指比较字符的规则的 ...

  6. bzoj 1715: [Usaco2006 Dec]Wormholes 虫洞 -- spfa判断负环

    1715: [Usaco2006 Dec]Wormholes 虫洞 Time Limit: 5 Sec  Memory Limit: 64 MB 注意第一次加边是双向边第二次是单向边,并且每次询问前数 ...

  7. c++string函数详解

    string,一个极为好用了函数,学好了这些函数,在模拟以及字符串问题上,回节省很多很多的写代码时间,代码复杂度以及错误率,那么这一类函数都有那些功能呢?我们来逐一介绍(让你大吃一惊,还有这种操作?) ...

  8. 内功心法 -- java.util.LinkedList<E> (7)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  9. PAT甲级1098. Insertion or Heap Sort

    PAT甲级1098. Insertion or Heap Sort 题意: 根据维基百科: 插入排序迭代,消耗一个输入元素每次重复,并增加排序的输出列表.在每次迭代中,插入排序从输入数据中删除一个元素 ...

  10. How to open a web site with the default web browser in a NEW window

    http://delphi.about.com/cs/adptips2004/a/bltip0504_4.htm When using ShellExecute (as explained in th ...