2011-02-03 7 views
0

私はflexから渡したバイト配列を読み込むための錬金術術コードを書いています。錬金術Cからバイト配列を返す方法

私はエラーに

を取得した値がされたflash.utils.ByteArray

錬金術コード

static AS3_Val readFile(void* self, AS3_Val args) 
{ 

    unsigned int e_length; 
    AS3_Val e_data = AS3_Undefined(); 
    AS3_ArrayValue(args, "IntType, AS3ValType", &e_length, &e_data); 
    //unsigned char * data = (unsigned char *)malloc(sizeof(unsigned char) * (e_length + 1)); 
    char *buffer; 
    buffer = (char *)malloc(e_length+ 3); 
    AS3_ByteArray_seek(e_data, 0, SEEK_SET); 
    AS3_ByteArray_readBytes(buffer, e_data, e_length); 
    free(buffer); 
    return AS3_String(buffer); 

} 

Flexのコードに "OggS" を変換することはできません印刷:

private function copyByteArray(content:String):void{ 

    try{ 

    byteData = new ByteArray(); 
     //byteData.writeUTFBytes(contents); 
     var dec:Base64Decoder = new Base64Decoder(); 
     dec.decode(content); 
     byteData = dec.toByteArray(); 
     Alert.show("byte Array " + byteData.length +" :: " +contents.length); 

     var file:File = File.desktopDirectory.resolvePath("Files/test.spx"); 
     stream = new FileStream(); 
     stream.open(file, FileMode.WRITE); 

    var byteArr:ByteArray; 
     var loader:CLibInit = new CLibInit(); 
     var lib:Object = loader.init(); 

     var byteStr:String; 

    byteArr = lib.readFile(byteData.length, byteData); 

    stream.writeBytes(byteArr); 
     stream.close(); 

    } 
    catch (ex: ErrorEvent){ 
     Alert.show("error"); 

    } 
} 
+0

錬金術術のコードでは、なぜあなたはそれを返す前にバッファを解放していますか?また、ByteArrayを返すときにAS3_Stringを作成するのはなぜですか? – aaaidan

答えて

1

あなたの問題は、AlchemyコードがStringを返しますが、FlexコードはtryiですこれをByteArrayに代入します。ここで何をやっているのAS3と同等です:

var ba:ByteArray= new String();  // bad 

あなたは錬金術からのByteArrayを返すようにしたい場合は、それを作成し、データとそれを埋めるために必要があります。

このようなByteArrayを渡すことはおそらく非効率的です。 AlchemyのRAMを介して直接データを渡す方法についてはSO question(およびその回答が指すリンク)を参照してください。

+0

私はそれを試みたが、それは動作していない。 – karthick

+0

あなたは(おそらく別のSOの質問で)あなたが試したものについては、もっと具体的にする必要があります。私はAlchemyのRAMを介してByteArrayデータを渡すプロジェクトがあり、正常に動作します。 – paleozogt

+0

あなたはコードを共有できますか? – karthick

関連する問題