我正在使用Flex的Alchemy库来生成SW文件中的SWC。我在c层中有一个字节数组(unsigned char buffer[size]
),我想以ByteArray
的形式返回到ActionScript层。我是否必须遍历数组并在每个元素上显式调用AS3_Set
,或者是否有办法立即返回整个C数组?
答案 0 :(得分:2)
这可以通过使用Alchemy API的AS3_ByteArray_writeBytes函数来完成。
答案 1 :(得分: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-array读取ints / floats / char(你不能只使用ByteArray.readInt(),c中的数字用不同的方式表示)