外部 API 要求和优点
Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本
外部 API 是 ActionScript 中的一部分,它为在 ActionScript 与充当 Flash Player 容器的“外部应用程序”(通常是 Web 浏览器或独立放映文件应用程序)中所运行的代码之间进行通信提供了一种机制。在 ActionScript 3.0 中,外部 API 的功能是由 ExternalInterface 类提供的。在 Flash Player 8 之前的 Flash Player 版本中,使用
fscommand()
动作与容器应用程序进行通信。ExternalInterface 类取代了
fscommand()
。
注:
如需使用旧的
fscommand()
函数(例如,为了与较早的应用程序保持兼容或与第三方 SWF 容器应用程序或独立的 Flash Player 进行交互),仍可将其作为 flash.system 包中的包级函数来使用。
ExternalInterface 类是一个子系统,通过该子系统可在 HTML 页面中的 ActionScript 和 Flash Player 与 JavaScript 之间进行轻松通信。
ExternalInterface 类只在以下情况下可用:
-
在所有受支持的 Internet Explorer for Windows 版本(5.0 和更高版本)中
-
在支持 NPRuntime 接口的任何浏览器中(当前包括 Firefox 1.0 和更高版本、Mozilla 1.7.5 和更高版本、Netscape 8.0 和更高版本以及 Safari 1.3 和更高版本)。
-
在 AIR 应用程序中(当 SWF 嵌入 HTMLLoader 控件显示的 HTML 页中时)。
在其他所有情况下(例如,在独立的播放器中运行),
ExternalInterface.available
属性均返回
false
。
从 ActionScript 中,可以在 HTML 页上调用 JavaScript 函数。与
fscommand()
相比,外部 API 可提供以下改进功能:
-
可以使用任何 JavaScript 函数,而不仅仅是可与
fscommand()
函数一起使用的函数。
-
可以传递任意数量的、具有任意名称的参数;而不是仅限于传递一个命令和一个字符串参数。这为外部 API 提供了比
fscommand()
大得多的灵活性。
-
可以传递各种数据类型(例如 Boolean、Number 和 String);不再仅限于 String 参数。
-
可以接收调用值,该值将立即返回到 ActionScript(作为进行的调用的返回值)。
重要说明:
如果为 HTML 页中的 Flash Player 实例指定的名称(
object
标签的
id
属性)包含有连字符 (
-
) 或在 JavaScript 中定义为运算符的其他字符(如
+
、
*
、
/
、
\
、
.
等等),在 Internet Explorer 中查看容器网页时,来自 ActionScript 的 ExternalInterface 调用将不起作用。另外,如果定义 Flash Player 实例(
object
和
embed
标签)的 HTML 标签在 HTML
form
标签中嵌套,来自 ActionScript 的 ExternalInterface 调用将不起作用。
|
|
|