URLLoader请求数据格式为Text但它会出现二进制问题?

时间:2012-03-30 08:32:30

标签: actionscript-3 flex flex4 flex4.5

我有一个URLLoader,它通常要求数据采用文本格式,无论如何在特定条件下它可能会得到二进制结果,实际上只是二进制格式的1整数。无论如何谈话:

var ba : ByteArray = ( e.currentTarget as URLLoader ).data; // failing on this row.
var r : int = ba.readInt();
因为请求标题结果数据是文本格式的,所以

不再通过了...

  • 如何将结果数据转换为整数?

3 个答案:

答案 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
}

基本读取和写入整数到字节数组