ExternalInterface的作用
是Flash 与 JavaScript 交互的枢纽,通过ExternalInterface.call可以使Flash调用页面上的JavaScript方法,也可以通过ExternalInterface.addCallBack使得Flash的内部方法注册到自身DOM节点上供外部JavaScript调用。
利用 ActionScript,可以在 HTML 页上执行以下操作:
- 调用任何 JavaScript 函数。
- 传递任意数量、具有任意名称的参数。
- 传递各种数据类型(Boolean、Number、String 等等)。
- 接收来自 JavaScript 函数的返回值。
通过在 HTML 页上使用 JavaScript,可以:
- 调用 ActionScript 函数。
- 使用标准的函数调用表示法传递参数。
- 将值返回给 JavaScript 函数。
available 属性:
ExternalInterface.available 属性指示当前的 Flash Player 是否位于提供外部接口的容器中。如果外部接口可用,则此属性为 true ;否则,为 false。在使用 ExternalInterface类中的任何其它功能之前,应始终进行检查以确保当前容器支持外部接口通信,如下所示:
if (ExternalInterface.available)
{
// 在此执行 ExternalInterface 方法调用。
}
objectID 属性:
通过使用 ExternalInterface.objectID 属性,您可以确定 Flash Player 实例的唯一标识符(具体来说,是指 Internet Explorer 中 object 标签的 id 属性,或者是指使用 NPRuntime接口的浏览器中 embed 标签的 name 属性)。这个唯一的 ID 代表浏览器中的当前 SWF 文档,并可用于对 SWF 文档进行引用,例如:在容器 HTML 页中调用 JavaScript 函数时进行引用。当 Flash Player 容器不是 Web 浏览器时,此属性为 null。
Flash 调用 JavaScript 方法
- 方式1:传统用法
ExternalInterface.call("alert", "你好!");
- 方式2:直接执行JavaScript语句
ExternalInterface.call("alert('你好')");
addCallback () 方法 :
将 ActionScript 方法注册为可从容器调用。
第一个参数:容器可用于调用函数的名称。
第二个参数:要调用的 closure 函数。 这可能是一个独立的函数,或者可能是引用对象实例方法的 closure 方法。 通过传递 closure 方法,回调实际上可以定向到特定对象实例的方法。
通过ExternalInterface类 flash与heml通信实例的演示:http://www.riaelite.com/blog/swfdemo/ExternalInterfaceExample.html
最新评论