the*_*322 3 air native actionscript-3 air-native-extension
是否可以从您的本机代码返回结构?返回int或boolean是相对简单的,但是如何将更复杂的结构返回到actionscript?
您可以将任何可以在本机代码中表示的对象作为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;
}
Run Code Online (Sandbox Code Playgroud)
构造Actionscript类的方法稍微复杂一些,但遵循类似的路径.这是一个本机C示例,Java等价物有些不同但仍然可以从本机代码返回复杂对象.
有关更多信息,这里有大量文档:
http://help.adobe.com/en_US/air/extensions/index.html