【发布时间】:2016-01-15 17:02:36
【问题描述】:
我有一个字节数组,我想将前 10 个字节存储为字符串,接下来的 138 个字节是垃圾,然后接下来的 4 个字节应该是一个数字。我有一些代码,但它没有像我预期的那样工作,我得到了一个我没想到的数字。
var byteData:ByteArray;
var store:ByteArray;
var url:URLRequest = new URLRequest("file.bin");
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(url);
loader.addEventListener(Event.COMPLETE, loaderComplete);
function loaderComplete(e:Event):void
{
byteData = new ByteArray();
store = new ByteArray();
byteData.position = 0;
byteData.endian = Endian.LITTLE_ENDIAN;
store.position = 0;
store.endian = Endian.LITTLE_ENDIAN;
name_string = loader.data.readMultiByte(10,"iso-8859-01");
loader.data.readBytes(byteData,loader.data.position,138);
loader.data.readBytes(store,loader.data.position,4);
trace(store);
}
或者如果我读到一个 int:trace(loader.data.readInt());我仍然得到错误的值。
抱歉,我不擅长字节数组。
对于 as3,int 是 4x 字节还是应该是短字节?
在哪里可以找到数据类型的字节大小?谢谢。
【问题讨论】:
-
你使用的是什么类型的加载器?
-
是的,4 个字节用于 int help.adobe.com/en_US/as3/mobile/…
-
感谢 4 个字节。在编辑中添加了加载程序信息....任何想法为什么我得到错误的int?我是否正确使用了 readbytes? ——
-
这与上一个问题有什么关系? stackoverflow.com/questions/34775001/…
-
@iain 只是猜测,但我不确定您是否需要设置偏移量。尝试将两个调用
readBytes()的第二个参数设置为零?
标签: arrays actionscript-3 bytearray