FREFunction()

AIR 3.0 和更高版本

签名

typedef FREObject (*FREFunction)( 
        FREContext             ctx, 
        void*            functionData, 
        uint32_t             argc, 
        FREObject             argv[] 
);

参数

ctx
表示此扩展上下文的 FREContext 变量。请参阅 FREContext

functionData
void* 指针,此指针指向您在其 FRENamedFunction 结构中与此 FREFunction 函数关联的数据。FREContextInitializer() 实现在输出参数中将一组 FRENamedFunction 结构传递给运行时。当运行时调用 FREFunction 函数时,它会向该函数传递此数据指针。请参阅 FRENamedFunction

argc
argv 参数中元素的数量。

argv
FREObject 变量数组。这些指针对应于在 ActionScript 调用中的函数名称后面传递给 ExtensionContext 实例的 call() 方法的参数。

返回

FREObject 变量。默认返回值是类型为 FRE_INVALID_OBJECT 的 FREObject。

说明

对扩展中的每个本机函数使用 FREFunction 签名实现函数。函数名称对应于 FREContextInitializer() 函数的 functionsToSet 参数中返回的数组中的 FRENamedFunction 元素的 function 字段。

当 ActionScript 端调用 ExtensionContext 实例的 call() 方法时,运行时调用此 FREFunction 函数。 call() 的第一个参数与 FRENamedFunction 元素的 name 字段相同。 call() 的后续参数对应于 argv 数组中的 FREObject 变量。

定义 FREFunction 可返回 FREObject 变量。FREObject 变量的类型对应于 call() 方法返回的 ActionScript 类型。如果 FREFunction 无返回值,则默认返回值是类型为 FRE_INVALID_OBJECT 的 FREObject 变量。默认返回值会导致 call() 在 ActionScript 端返回 null

使用 ctx 参数可执行以下操作:

  • 获取和设置与扩展关联的数据。此数据可以是本机上下文数据,也可以是 ActionScript 上下文数据。请参阅 上下文特定数据

  • 在 ActionScript 端将一个异步事件调度给 ExtensionContext 实例。请参阅 FREDispatchStatusEventAsync()

使用 所使用的函数 中的函数处理 FREObject 参数和返回值(如果有)。