FLASH编程中的ByteArray的内容怎么用C或者c++来实现?
有一段AS代码:
var _local1:ByteArray = new ByteArray();
_local1.writeShort(123);
_local1.writeByte(1);
最后_local1的结果是什么?
如果用C或者C++来实现,怎样可以得到跟上面一样的_local1的结果?
我是初学者,不明白,请教大家。
[解决办法]
import flash.utils.ByteArray;var _local1:ByteArray = new ByteArray();_local1.writeShort(123);_local1.writeByte(1);for (var i:int = 0; i<_local1.length; i++){ _local1.position = i; var temp:String = _local1.readByte().toString(16); if (temp.length == 1) { temp = "0" + temp; } trace(temp)}
[解决办法]
其实和C++的byte是一样的。就是二进制数据。
至于C++如何操作字节不用我说了吧。只要写入[00 7B 01]就好了。
你懂的~
[解决办法]
不明白2楼说的。如果我用来和c和c++做压缩处理,比如先用 c或者c++ 进行zlib压缩,传输到客户端让as来解压如何处理?
[解决办法]
as3 用urlloader读取字节数组
然后用ByteArray.uncompress()来进行解压。
var u:ByteArray= new ByteArray();u.writeByte(100);SeeArr(u);u.compress();SeeArr(u);u.uncompress();SeeArr(u);function SeeArr(v:ByteArray){ var temp:String = ""; for (var i:int =0; i<v.length; i++) { v.position = i; temp += v.readByte().toString(10) + " "; } trace(temp);}