Я написал код алхимии для чтения массива байтов, который я передал из flex.
Когда я печатаю значение, я получаю ошибку
не может преобразовать OggS во флэш.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:
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");
}
}