我有一个URLLoader,它通常要求数据采用文本格式,无论如何在特定条件下它可能会得到二进制结果,实际上只是二进制格式的1整数。无论如何谈话:
var ba : ByteArray = ( e.currentTarget as URLLoader ).data; // failing on this row.
var r : int = ba.readInt();
因为请求标题结果数据是文本格式的,所以不再通过了...
答案 0 :(得分:3)
如果你确定你在那里recive int,请输入:
var value:int= int(( e.currentTarget as URLLoader ).data);
同样的事情如果你得到字符串或XML,你可以做。
但是如果您想将数据作为ByteArray重新接收,则应在加载URLLoader行之前键入:
import flash.net.URLLoaderDataFormat;
urlloader.dataFormat = URLLoaderDataFormat.BINARY;
比你的数据是bytearray。
答案 1 :(得分:2)
简单地说,您需要更改
urlLoader.dataFormat=URLLoaderDataFormat.BINARY
但在发送请求之前。之后,没有必要这样做。
修改强>
将文本读入二进制文件(ByteArray)
var ba:ByteArray=new ByteArray();
ba.writeUTFBytes(( e.currentTarget as URLLoader ).data);
ba.position=0;
var myInteger:int=ba.readInt();
答案 2 :(得分:1)
function test(){
var bytes:ByteArray = new ByteArray();
bytes.writeInt(0x00DDAA99); //create my byte array with int 14527129
bytes.position = 0; //move the postion to the start
var newInt:int = bytes.readInt(); //read the bytes from starting position
trace("new num: "+newInt); //print out the number
}
基本读取和写入整数到字节数组