Вы можете вернуть любой объект, который может быть представлен в собственном коде как FREObject. На самом деле это включает в себя любой класс Actionscript или тип данных примитива Actionscript. Это включает в себя такие вещи, как: int, String, Array, BitmapData, ByteArray и т. Д.
Например, давайте создадим возвращаемый массив длины 4 со значениями int 0 - 3:
FREObject returnAnArray( FREContext cts, void* funcData, uint32_t argc, FREObject argv[])
{
FREObject returnArray = NULL;
FRENewObject((const uint8_t*)"Array", 0, NULL, &returnArray, nil );
FRESetArrayLength( returnArray, 4 );
for ( int32_t i = 0; i < 4; i++)
{
FREObject element;
FRENewObjectFromUint32( i, element );
FRESetArrayElementAt( returnArray, i, element );
}
return returnArray;
}
Метод создания классов Actionscript немного сложнее, но он следует похожему пути. Это, конечно, собственный пример C, Java-эквивалент несколько отличается, но все же возможно возвращать сложные объекты из собственного кода.
Для получения дополнительной информации здесь есть куча документации:
http://help.adobe.com/en_US/air/extensions/index.html