FREContextInitializer()

AIR 3.0 和更高版本

签名

typedef void (*FREContextInitializer)( 
        void*                        extData, 
        const uint8_t*           ctxType, 
        FREContext               ctx, 
        uint32_t*                numFunctionsToSet, 
        const FRENamedFunction** functionsToSet 
);

参数

extData
指向本机扩展的扩展数据的指针。函数 FREInitializer() 会创建扩展数据。

ctxType
标识上下文类型的字符串。可根据扩展的需要定义此字符串。上下文类型可表示扩展的 ActionScript 端与本机端之间的任何约定含义。如果您的扩展不使用上下文类型,此值可以是 Null 。此值为 UTF-8 编码的字符串,以 null 字符终止。

ctx
FREContext 变量。运行时创建此值并将其传递给 FREContextInitializer() 。请参阅 FREContext

numFunctionsToSet
指向 unint32_t 的指针。将 numFunctionsToSet 设置为包含 functionsToSet 参数中的函数数量的 unint32_t 变量。

functionsToSet
指向 FRNamedFunction 元素数组的指针。每个元素都包含一个指向本机函数的指针,以及 ActionScript 端在 ExtensionContext 实例的 call() 方法中使用的字符串。请参阅 FRENamedFunction

返回

无。

说明

当 ActionScript 端调用 ExtensionContext.createExtensionContext() 时,运行时会调用此方法。实现此方法可执行以下操作:

  • 初始化扩展上下文。初始化可能取决于 ctxType 参数中传递的上下文类型。

  • 保存 ctx 参数的值,以便其可用于本机实现对 FREDispatchStatusEventAsync() 的调用。

  • 使用 ctx 参数初始化上下文特定数据。此数据包括上下文特定的本机数据和上下文特定的 ActionScript 数据。

  • 设置 FRENamedFunction 对象的数组。返回一个指向 functionsToSet 参数中的数组的指针。返回一个指向 numFunctionsToSet 参数中的数组元素数量的指针。

FREContextInitializer() 方法的行为取决于 ctxType 参数。ActionScript 端可将上下文类型传递给 ExtensionContext.createExtensionContext() 。然后,运行时将值传递给 FREContextInitializer() 。此函数通常使用上下文类型选择本机实现中 ActionScript 端可以调用的方法集。每个上下文类型都对应一个不同的方法集。