Flex Alchemy:从C函数返回ByteArray

时间:2009-10-28 00:54:23

标签: c flex bytearray alchemy

我正在使用Flex的Alchemy库来生成SW文件中的SWC。我在c层中有一个字节数组(unsigned char buffer[size]),我想以ByteArray的形式返回到ActionScript层。我是否必须遍历数组并在每个元素上显式调用AS3_Set,或者是否有办法立即返回整个C数组?

2 个答案:

答案 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中的数字用不同的方式表示)