2012-03-30 7 views
0

私はURLLoaderを持っていますが、データをテキスト形式で要求しています。とにかく特定の条件でバイナリ結果を得るかもしれません。実際バイナリ形式の整数は1つだけです。とにかく会話:結果データは、リクエストヘッダによるテキストフォーマであるので、もう渡しURLLoaderはデータ形式をTextに要求しますが、バイナリの問題は発生しますか?

var ba : ByteArray = (e.currentTarget as URLLoader).data; // failing on this row. 
var r : int = ba.readInt(); 

doesntの...

整数に結果データを変換する方法

答えて

2

単純に、あなたは

urlLoader.dataFormat=URLLoaderDataFormat.BINARY 

を変更する必要があります。しかし。その後、それをするのはポイントがありません。

EDIT

var ba:ByteArray=new ByteArray(); 
ba.writeUTFBytes((e.currentTarget as URLLoader).data); 
ba.position=0; 
var myInteger:int=ba.readInt(); 
+0

私はBINARYリクエストとして送信していないが、TEXTという、非常に特殊なケースではサーバーが処理するバイナリデータを返してからヘッドバンギングを開始するという問題が発生します。 –

+0

編集の回答を確認してください。 –

+0

はい。実際に私はすでにこの方法で試しましたが、出てくる数字は実際にサーバーから送信されたものではありません。 –

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 
} 

基本的な読書とバイト配列

+0

バイナリ(ByteArrayの)にテキストを読むには:|これが私の場合と異なっています。私はバイナリデータを実際にはテキストとしてミスしています。私はそれをバイナリデータに変換し、おそらくそれから整数を読み取る必要があります。 –

3

の整数を書いて、あなたはint型がreciveことが確実な場合には、タイプ:あなたが行うことができます

var value:int= int((e.currentTarget as URLLoader).data); 

同じことあなたは、文字列を取得する場合またはXML。

しかし、あなたがたByteArrayとしてデータをreciveしたい場合、あなたはURLLoaderクラスのライン上の負荷の前に入力する必要があります:あなたのデータよりも

import flash.net.URLLoaderDataFormat; 
urlloader.dataFormat = URLLoaderDataFormat.BINARY; 

は、ByteArrayのだろう。あなたがリクエストを送信する前に

+0

データ受信後にdataFormatを切り替えることはできますか? –

関連する問題