ActionScript 与容器应用程序之间的通信方式有两种:
1. ActionScript 可以调用容器中定义的代码 (如 JavaScript 函数);
2. 或者容器中的代码可以调用被指定为可调用函数的 ActionScript 函数.
在这两种情况下, 都可以将信息发送给被调用的代码, 而将结果返回给执行调用的代码.
ExternalInterface.available 属性指示当前的 Flash Player 是否位于提供外部接口的容器中.
如果外部接口可用, 则此属性为 true ; 否则, 为 false.
在使用 ExternalInterface 类中的任何其它功能之前, 应始终进行检查以确保当前容器支持外部接口通信,
如下所示:
if (ExternalInterface.available) { // 在此执行 ExternalInterface 方法调用. }
注意:
ExternalInterface.available 属性报告当前容器是否为支持 ExternalInterface 连接的容器类型. 它不会报告当前浏览器中是否启用了 JavaScript.
从 ActionScript 中调用外部代码
ExternalInterface.call(jsFunctionName, ...args);
从容器中调用 ActionScript 代码
function callMe(...args):String { return "busy signal"; } // 注册AS函数 ExternalInterface.addCallback("ASFunction", callMe); // html中调用AS Function <object id="flashObject"...> <embed name="flashObject".../> </object> <script language="JavaScript" type="text/javascript"> // callResult gets the value "busy signal" var callResult = flashObject.ASFunction(...args); </script>