是否可以从您的 native 代码返回结构?返回 int 或 boolean 相对简单,但如何将更复杂的结构返回给 actionscript?
最佳答案
您可以返回任何可以在 native 代码中表示为 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 等价物有些不同,但仍然可以从原生代码返回复杂对象。
有关更多信息,请参阅此处的大量文档:
关于actionscript-3 - 从 Air Native 扩展返回一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9269888/