- 浏览: 578363 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wzh051527:
我是大四实习生一个,自我感觉技术能力在第三年。。唯一不明白,为 ...
十年技术,不要再迷茫 -
room_bb:
.hrl文件怎么加入到编译规则里面?比如:pp.hrl文件-d ...
Erlang中用的makefile的一点解释 -
吉米家:
感觉帆软报表的flash打印就很不错哇,特别好用
JSP 实现报表打印 -
雪碧爱芬达:
苦逼程序员的辛酸反省与总结 -
mlyjxx:
...
十年技术,不要再迷茫
在AS3中另外一个比较涉及底层操作的类是二进制类ByteArray。这个类管理了一系列二进制数据。可以达到在字节层上的控制。二进制数据在网络传输时虽然在工作效率下有所下降,但却是最节省网络带宽的传输方式。 一,简介: ByteArray输入flash.util包,直接继承自Object对象。具有6个公共属性和33个公共方法。其中大部分是不同数据类型的写入和读取write&read。对ByteArray的操作是基于一个指针position的。 二,公共属性: 1,可用字节数(数组长度) 一个只读属性,返回了当前指针position到ByteArray末尾的可读数据长度,避免了读取超出范围的数据而造成的Error。 2,二进制数据格式 是一个静态变量,定义了ByteArray的写入或读取数据时使用的格式。通常使用ObjectEncoding来设置,具有三个值AMF0(以AS1,AS2格式序列化对象),AMF3(以AS3格式序列化对象),DEFAULT(按FlashPlayer默认最新的格式序列化对象)。 3,写入字节的顺序 也是一个静态变量,定义了字节的顺序。通常使用Endian类设置,具有两个值BIG_ENDIAN(最高有效字节位于字节序列的最前面)和LITTLE_ENDIAN(最低有效字节位于最前),这个主要用于跟服务器端匹配即可。 4,ByteArray长度 ByteArray的总长度,以字节为单位。 5,读取格式 这个就是之前提到的数据写入或读取ByteArray使用的格式,主要还是分AS1,AS2写入还是AS3写入。使用ObjectEncoding来设置。 6,指针位置 移动当前读取到ByteArray的位置。 三,公共方法: 其中大部分都是读写方法READ/WRITE,其中READ方法14个,WRITE方法12个(竟然不相同?到时要好好注意)。剩余7个其他方法。 1,构造函数 没什么特别的,连参数都没有··囧 2,清除 清楚ByteArray占用的内存。将长度和position设为0. 3,压缩方法A compress(algorithm:String):void 参数是一个String类型,通过flash.util.CompressionAlgorithm定义。压缩之后数组变为新长度,position跳到ByteArray末尾。FlashPlayer中运行不能传参数,默认为zlib压缩算法。 4,压缩方法B(AIR only) 另外一种压缩方法,使用的是deflate算法(天知道是什么算法)。压缩之后数组变为新长度,position跳到ByteArray末尾。 5,压缩方法A解压方法 解压算法要与压缩算法相对应。FlashPlayer中运行不能传参数,默认为zlib压缩算法。压缩之后数组变为新长度,position跳到ByteArray开头。 6,压缩方法B解压方法(AIR only) 解压通过deflate方法压缩过的ByteArray。压缩之后数组变为新长度,position跳到ByteArray开头。 7,转为字符转方法 将ByteArray转化为字符串形似。 接下来就是成对出现的READ/WRITE方法,要注意指针position的位置变化,当位置不足以读取时会引发EOError。 8,读取Boolen值。 读取一个字节,当字节不为0时返回true,字节为0时返回false。 9,写入Boolen值。 writeBoolean(value:Boolean):void 当value为true时写入1,当value为false时写入0。 10,读取带符号字节 返回值在-128~127之间,即256个范围(一个字节为8位2进制位)。 11,写入带符号字节 参数是一个32位的int整数,只有低8位才会被写入。高24位被忽略。 12,读取字节 readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void 第一个参数是将读取出的字节写入第一个参数指定的ByteArray对象中。 后两个即指针position的偏移位置,以及读取的长度(0为从position位置开始全部读取)。 13,写入字节 writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void 从指定的ByteArray对象bytes中读取一定长度的字节流,写回ByteArray中。 后两个参数定义了位置。 14,读取64位浮点数 就是读取一个双精度64位的带小数的浮点数(好绕口,浮点数就是带小数点的意思啊) 15,写入64位浮点数 writeDouble(value:Number):void 将一个64位浮点数写入ByteArray 16,读取32位浮点数 读取一个单精度32位的浮点数 17,写入32位浮点数 writeFloat(value:Number):void 将一个32位浮点数写入ByteArray 18,读取带符号整数 从字节流中读出32位带符号整数 19,写入带符号整数 将32位带符号整数写入ByteArray 20,从字符集中读取字符串 readMultiByte(length:uint, charSet:String):String 这个字符集不太懂是什么意思,可选的值有"shift-jis","cn-gb"等 21,将多字节按指定字符集形式写入ByteArray writeMultiByte(value:String, charSet:String):void 与上面的对应。 22,读取对象 readObject():* 从ByteArray中按AMF格式读取一个对象OBJECT 23,写入对象 writeObject(object:*):void 将一个对象写入ByteArray中 24,读取一个16位整数 从ByteArray中读取一个16位带符号的整数 25,写入一个16位整数 writeShort(value:int):void 将一个整数int写入ByteArray中,忽略高16位。 26,读取无符号字节 27,读取无符号16位整数 28,读取无符号32位整数 29,写入无符号32位整数 writeUnsignedInt(value:uint):void 30,读取一个UTF-8字符串 31,写入一个UTF-8字符串 这个会写在ByteArray里写入一个字节表示字符串长度(16字节),然后再写入字符串 32,读取指定长度的UTF-8字符串 readUTFBytes(length:uint):String 33,写入指定长度的UTF-8字符串 writeUTFBytes(value:String):void 与writeUTF很相似,但是不会自动生成1个字节保存字符串长度 总结: 任何对ByteArray的操作都会引起指针position的变化。其中共有13对读写方法,分别是:Boolen,Byte,Bytes,Double,Float,Int,MulitByte,Object,Short,UnsignInt,UTF,UTFBytes,另外还有2个单独读取的UnsignByte,UnsignShort。 当然具体对ByteArray的操作还要GOOGLE各种文件的格式来进行编码与解码,仅仅一个类并做不了什么。但先对整个类有个整体的了解也是好的。
发表评论
-
as3 Loader 加载资源后内存泄露无法释放的问题。
2014-06-21 10:30 642as3 Loader 加载资源后内存泄露无法释放的问题。 ... -
as3判断flash player版本的函数
2014-06-10 20:35 800//判断当前版本是否高于9.0.115.0为例子. pr ... -
CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
2014-04-03 15:25 968华文细黑:STHeiti Light [STXihei]华文 ... -
as3.0的垃圾回收机制
2013-09-07 14:02 1466还是同样的博客,还是同样的作者(Daniel Sidhio ... -
AIR程序多开
2013-09-07 13:55 969AIR应用通常不能像QQ那样能进行多开操作。为了让一个用AI ... -
starling性能优化总结
2013-07-22 14:06 1441在项目开发的过程中总结了一下starling的性能优化方案: ... -
AS3 Socket从零开始
2013-07-22 12:54 1073大家如果想学AS3 Socket直接在百度里搜一下,会找到很 ... -
绕开AS3安全沙箱 跨域加载SWF
2013-07-11 12:53 869AS3的安全沙箱的确是 ... -
解决AS3在ie中初始化时stageWidth和stageHeight为0
2013-06-14 09:23 976先看下面的一段脚本,这是比较经典的初始化脚本: pac ... -
动态获取swc中的类
2013-05-25 10:32 911想通过代码生成,来获取swc中的类,并且可以作为普通类正常使 ... -
AS3 中字符串的format功能实现
2013-05-25 10:19 806使用C#的朋友都知道,string.Format();还是挺 ... -
总结调用Flash的几种方法
2013-05-02 16:18 1625一、Adobe 提供的方法 <object wi ... -
Flash3D错误集锦
2013-05-02 14:03 898VerifyError: Error #1014: 无法找到 ... -
使用scale拉伸之后的坐标问题
2013-04-12 09:38 1242最近发现论坛多了很多 ... -
30个实用的网页设计工具
2013-03-20 09:58 780作为一位网页设计师或开发者,你一直需要搜寻获取强大的网页设计 ... -
如何成为强大的程序员?
2013-03-11 11:27 699Aaron Stannard是新创公 ... -
漫谈重构
2013-03-11 11:09 823因为工作内容的原因, ... -
AS3使用谷歌API生成二维码
2012-12-10 16:24 1319二维码在新闻杂志,网站,网络广告,电视广告等地方随处可见 ... -
OOP的聚合原则
2012-12-10 16:21 900什么是聚合? 聚合可以很好地表达对象是什么和做 ... -
压缩速率追踪
2012-11-02 14:16 1427Flash Player 11.3添加了一个压缩和解压B ...
相关推荐
将byteArray转变成Sound/Mp3
char bytearray string的区别. 详细介绍了其中的区别。学习 qt 和 c++ 必须搞懂的知识char bytearray string的区别.
项目的数据库
通过ByteArray来播放MP3通过ByteArray来播放MP3
NULL 博文链接:https://wuxiubing.iteye.com/blog/1354181
9-slice Bitmap scaling by ByteArray. Very useful for GUI!!
介绍 ByteArray.js是Actionscript 3的ByteArray的实现,但是仅使用纯Javascript。 该库支持Actionscript 3的大部分功能。一个小目标是通过支持密钥库使Actionscript 3开发人员切换到较新的平台。 缓冲区的默认长度是...
byteArray,byteArray的妙用,Chapter 1 - The first bits,用二进制解决问题
主要介绍了python string类型 bytes类型 bytearray类型,需要的朋友可以参考下
完整详细版Python全套教学课件 第02节 内置数据结构04 bytes和bytearray.pptx
今天小编就为大家分享一篇Python3之字节串bytes与字节数组bytearray的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
可以获取textEdit上的QString类型16进制数转换为ByteArray; 输入数据错误判断及提示; CRC16校验计算公式; 计算ByteArray的crc16结果; 结果转换为QString,并且每两位数据都需要增加空格展示; 输入清除功能; ...
犀牛字节数组 在Rhino JavaScript引擎中使用字节数组 注意 由该代码制成的字节数组可以与Java中的字节数组不同,但它似乎可以像Java字节数组一样完美地工作。...let b = ( new ByteArray ( size ) ) . init ( ) ;
通过JPEGEncoder类将ByteArray对象保存成图片
今天在国外网站上淘到一个很好用的AS3的BASE64类 感觉写得简洁而强大。很好,赶快放上来。 调用代码: import com . dynamicflash . utils . Base64 ; //编码和解码字符串 var source : String = "Hello, world" ...
byte[] byteArray = new byte[charArray.length]; for (int i = 0; i ; i++) byteArray[i] = (byte) charArray[i]; byte[] md5Byte = this.mad5.digest(byteArray); StringBuffer hexValue = new ...
1.2.2 表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源) 3 1.2.4 表名:ACT_HI_ACTINST (历史节点表) 5 1.2.3 表名:ACT_GE_PROPERTY (系统相关属性) 4 1.2.5 表名:ACT_HI_ATTACHMENT (附件信息) 6 1.2.6 ...
一个基于C#实现的Image与Byte Array进行相互转换的Class类库源码及例子程序