调用本机函数

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 值。