2009-10-28 42 views
1

我正在使用Flex的Alchemy庫來生成SWC的C文件。我在c層有一個字節數組(unsigned char buffer[size]),我想返回到ActionScript層作爲ByteArray。我是否必須遍歷數組,並明確地在每個元素上調用AS3_Set,或者是否有辦法一次返回整個C數組?Flex Alchemy:從C函數返回一個ByteArray

回答

0

在C,由Flash調用該函數返回時,指針返回到C-陣列,像這樣:

int * myArray = malloc(100); 
//populate array... 
return AS3_Array("IntType", (int)myArray); 

然後,在Flash:

import cmodule.<c module name>.MemUser; 
... 
memory = new MemUser(); 
for (var i:int = 0; i<4;i++) { //getting a 4 uints array 
    trace(memory._mru16(data[0] + i*4)); //data is the return value from C 
} 

或者使用these functions從c數組讀取ints/float/char(不能只使用ByteArray.readInt(),c中的數字表示不同)

+0

爲什麼不直接返回一個AS3_Int((int)myArray)in C代碼? – aaaidan 2011-03-10 23:03:54