扩展函数

扩展的 ActionScript 端通过调用 ExtensionContext 实例的 call() 方法来调用您实现的 C 函数。 call() 方法使用以下参数:

  • 函数的名称。您在上下文初始化函数的输出参数中提供该名称。该名称是 ActionScript 端和本机端之间约定的任意字符串。通常,它是本机 C 函数的实际名称。不过,这两个名称可以不同,因为运行时会将任意名称与实际函数相关联。

  • 本机函数的参数列表。这些参数可以是任何基元类型的 ActionScript 对象或 ActionScript 类对象。

使用同一函数签名 FREFunction() 定义各个本机函数。运行时会将以下参数传递给各个本机函数:

  • FREContext 值。本机函数可以使用该值访问和设置上下文特定的数据。此外,本机实现还使用 FREContext 值将异步事件调度回 ActionScript 端。

  • 指向与函数关联的数据的指针。该数据可以是任何本机数据。当运行时调用本机函数时,它会向函数传递该数据指针。

  • 函数参数的数量。

  • 函数参数。每个函数参数的类型均为 FREObject。这些参数与 ActionScript 类对象或基元数据类型对应。

本机函数还具有 FREObject 类型的返回值。运行时返回相应的 ActionScript 对象作为 ExtensionContext call() 方法的返回值。

注: 不要将本机函数的可见性设置隐藏。使用默认可见性。

以下序列图显示了 AIR 应用程序进行的函数调用导致调用名为 FREFunctionF() 的本机 C 函数。在本示例中,C 函数:

  • 获取上下文特定的本机数据。

  • 获取 ActionScript 对象的 int32 值。

  • 启动一个异步线程,该线程稍后调度事件。

注: C 函数 FREFunctionF() 的行为只是一个用于演示调用序列的示例行为。
查看完全大小图形
本机函数调用序列示例