Вопрос

Я использую библиотеку Flex Alchemy для создания SWC-файлов из C-файлов. У меня есть байтовый массив ( беззнаковый буфер символов [размер] ) в c-слое, который я хотел бы вернуть на слой ActionScript в виде ByteArray . Нужно ли перебирать массив и явно вызывать AS3_Set для каждого элемента или есть способ просто вернуть весь массив C сразу?

Это было полезно?

Решение

Это можно сделать с помощью AS3_ByteArray_writeBytes Алхимического API.

Другие советы

В 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
}

Или используйте эти функции для чтения ints / floats / char из массива c (вы не можете просто использовать ByteArray.readInt (), числа в c представлены по-разному)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top