ActionScript 扩展类调用
ExtensionContext.createExtensionContext()
之后,即可调用本机实现中的方法。TVChannelController 示例调用本机方法
"setDeviceChannel"
和
"getDeviceChannel"
,如下所示:
package com.example {
public class TVChannelController extends EventDispatcher {
private var extContext:ExtensionContext;
private var channel:int;
public function TVChannelController() {
extContext = ExtensionContext.createExtensionContext(
"com.example.TVControllerExtension", "channel");
}
public function set currentChannel(channelToSet:int):void {
extContext.call("setDeviceChannel", channelToSet);
}
public function get currentChannel():int {
channel = int (extContext.call("getDeviceChannel"));
return channel;
}
}
ExtensionContext 的
call()
方法采用以下参数:
-
functionName
。该字符串表示本机实现中的一个函数。在 TVChannelController 示例中,这些字符串与 ActionScript 方法名称不同。您可以选择使用相同的名称。也可以选择
functionName
字符串是否与其表示的本机函数的名称相同。在本机实现中,应在该
functionName
字符串与本机函数之间建立关联。可在
FREContextInitializer()
方法的输出参数中设置这一关联。请参阅
扩展上下文初始化
。
-
可选参数列表。每个参数都传递给本机函数。参数可以是基元类型(如 int),也可以是任何 ActionScript 对象。
ExtensionContext 的
call()
方法的返回值是基元类型或任何 ActionScript 对象。返回的对象的子类取决于本机函数的返回值。例如,本机函数
"getDeviceChannel"
返回 int 值。
|
|
|