AS3: ByteArray几个要注意的方法和属性

1、readBytes()方法 
官方
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void  

 

从字节流中读取 length 参数指定的数据字节数。从 offset 指定的位置开始,将字节读入 bytes 参数指定的 ByteArray 对象中,并将字节写入目标 ByteArray 中。

参数

 bytes:ByteArray — 要将数据读入的 ByteArray 对象。
 
 offset:uint (default = 0) — bytes 中的偏移(位置),应从该位置写入读取的数据。
 
 length:uint (default = 0) — 要读取的字节数。默认值 0 导致读取所有可用的数据。

 

注意:

offset就是在bytes中从offset这个位置开始写入。

length就是一段位移,一段在ByteArray中的位移。 

如例

      var bt2:ByteArray=new ByteArray();

      var bt:ByteArray=new ByteArray();
            bt.writeInt(1);
            bt.writeUTF("aa");
            bt.writeUTF("dd");           

              
        A:   

            bt.position=4;    //这里设置position=4,下面的readBytes就应该从bt的4位置,开始读取数据到bt2中

            bt.readBytes(bt2);   //只将aa 和 dd 写进去bt2中了


            bt2.position=0;

            trace(bt2.readUTF().toString());          //显示 aa

 

       B:   

             bt.positon=0;

              bt.readBytes(bt2,2,bt.length);     //这样bt2前面的两个字节是空的,但是

              bt2.position=0;                 //这一步是多余,bt2的positon本来就是0,但是bt的position已经变成12

              trace(bt2.readInt().toString());          //显示空,若设置bt2.position=2,则显示1

 

********************************************************************************************

bytesAvailable属性

bytesAvailable:uint  []

 

 

 

 

可从字节数组的当前位置数组末尾读取的数据的字节数。

每次访问 ByteArray 对象时,将 bytesAvailable 属性与读取方法结合使用,以确保读取有效的数据。

不管是read还是write都会叠加数组的position,read不会减少原数组的字节,bytesAvailable的数目完全取决于position的位置。

 

如例:

     bt.readBytes(bt2,2,bt.length);     //这样bt2前面的两个字节是空的

     trace(bt.position);     //12
     trace(bt2.position)    //  0
     trace(bt2.bytesAvailable) ;                   //12+2=14

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值