运行时在本机端调用扩展初始化函数。使用该扩展的应用程序每次运行时,运行时都会调用一次该初始化函数。尤其是,在扩展首次调用任何上下文的
ExtensionContext.createExtensionContext()
时,运行时都会调用初始化函数。
该函数初始化所有扩展上下文可以使用的数据。使用
FREInitializer()
的签名定义扩展初始值设定项函数。
例如:
void MyExtensionInitializer
(void** extDataToSet, FREContextInitializer* ctxInitializerToSet,
FREContextFinalizer* ctxFinalizerToSet)
{
extDataToSet = NULL; // This example does not use any extension data.
*ctxInitializerToSet = &MyContextInitializer;
*ctxFinalizerToSet = &MyContextFinalizer;
}
您定义的
FREInitializer()
方法将以下数据返回到运行时:
-
一个指针,指向运行时稍后传递给每个新扩展上下文的数据。例如,如果所有扩展上下文都使用同一实用程序库,则该数据可以包含指向该库的指针。该数据称为
扩展数据
。
扩展数据可以是您选择的任何数据。它可以是简单的基元数据类型,也可以是指向您定义的结构的指针。在本示例中,指针为
NULL
,因为扩展没有使用此数据。
-
指向上下文初始化函数的指针。ActionScript 端每次调用
ExtensionContext.createExtensionContext()
时,运行时都调用您提供的扩展上下文初始化函数。请参阅
FREContextInitializer()
。
-
指向上下文终结器函数的指针。当运行时释放扩展上下文时,它会调用该函数。当 ActionScript 端调用 ExtensionContext 实例的
dispose()
方法时,发生该调用。如果未调用
dispose()
,运行时将对 ExtensionContext 实例进行垃圾回收。请参阅
FREContextFinalizer()
。
对于应用程序绑定的扩展,您的
FREInitializer()
实现可以具有任何名称。在扩展描述符文件中指定初始化函数的名称。请参阅
本机扩展描述符文件
。
对于设备绑定的应用程序,指定扩展初始化函数的方式由设备决定。
以下序列图明确调用 FREInitializer() 函数的 AIR 运行时。它还显示上下文初始化。有关详细信息,请参阅
扩展上下文初始化
。
|
|
|