您可以返回任何可以在本机代码中表示为 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 http://help.adobe.com/en_US/air/extensions/index.html