Flex Alchemy: Rückgabe eines ByteArray aus C-Funktion
-
06-07-2019 - |
Frage
Ich verwende Flex Alchemy Bibliothek SWC ist aus C-Dateien zu generieren. Ich habe einen Byte-Array (unsigned char buffer[size]
) in der C-Schicht, die ich als ByteArray
an die Actionscript-Schicht zurückgeben möchte. Muß ich durch das Array zu durchlaufen und explizit AS3_Set
auf jedes Elemente nennen, oder gibt es eine Möglichkeit, nur den gesamten C-Array sofort zurück?
Lösung
Dies kann mit der AS3_ByteArray_writeBytes Funktion des Alchemy-API.
Andere Tipps
C, wenn sie von der Funktion aufgerufen durch Flash-Rückkehr, stellen Sie den Zeiger auf die C-Array, wie folgt aus:
int * myArray = malloc(100);
//populate array...
return AS3_Array("IntType", (int)myArray);
Dann in 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
}
oder benutzen diese Funktionen die ints lesen / schwimmt / char aus der c-Array (nicht nur ByteArray.readInt verwenden können () werden die Zahlen in c unterschiedlich dargestellt)