Я использую библиотеку Flex Alchemy для создания SWC из файлов C. У меня есть массив байтов (unsigned char buffer[size]
) на c-уровне, который я хотел бы вернуть на уровень ActionScript как ByteArray
. Должен ли я перебирать массив и явно вызывать AS3_Set
для каждого элемента, или есть способ просто вернуть весь массив C сразу?
Flex Alchemy: возврат ByteArray из функции C
Ответы (2)
Это можно сделать с помощью AS3_ByteArray_writeBytes API Alchemy.
person
Raul Agrait
schedule
28.10.2009
В C при возврате из функции, вызванной Flash, возвращайте указатель на C-массив, например:
int * myArray = malloc(100);
//populate array...
return AS3_Array("IntType", (int)myArray);
Затем во флеше:
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
}
Или используйте эти функции для чтения ints/floats/char из c-массива (вы не можете просто использовать ByteArray.readInt(), числа в c представлены по-разному)
person
dutzi
schedule
23.12.2010
Почему бы просто не вернуть AS3_Int( (int)myArray ) в коде C?
- person aaaidan; 11.03.2011