使用外部 API

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

借助 ActionScript 3.0 外部 API (flash.external.ExternalInterface),可在 ActionScript 与在其中运行 Adobe Flash Player 的容器应用程序之间实现直接通信。在某些情况下,您可能需要使用外部 API,例如创建 SWF 文档与 HTML 页中的 JavaScript 之间的交互,或者构建台式机应用程序以使用 Flash Player 来播放 SWF 文件的时候。

您可以使用外部 API 与容器应用程序交互、传递 HTML 页面中 ActionScript 和 JavaScript 之间的数据以及在 ActionScript 和桌面应用程序之间建立通信并交换数据。

一些常见的外部 API 任务是:
  • 获取有关容器应用程序的信息

  • 使用 ActionScript 调用容器应用程序中的代码,其中包括网页或台式机应用程序

  • 从容器应用程序的代码中调用 ActionScript 代码

  • 创建代理以简化从容器应用程序调用 ActionScript 代码的过程

注: 有关外部接口的讨论仅涉及 SWF 文件中的 ActionScript 和容器应用程序之间的通信,该应用程序包含对 Flash Player 或已加载 SWF 文件的实例的引用。应用程序中其他任何使用 Flash Player 的情况都不在本文档的讨论范围之内。Flash Player 用作浏览器插件或放映文件(独立应用程序)。可能还在一定程度上支持其他使用方案。

在 AIR 中使用外部 API

由于 AIR 应用程序没有外部容器,因此通常不使用也不需要此外部接口。AIR 应用程序直接加载 SWF 文件时,应用程序代码可直接与 SWF 中的 ActionScript 代码通信(受安全沙箱限制约束)。

但是,当 AIR 应用程序使用 HTMLLoader 对象中的 HTML 页面(或 Flex 中的 HTML 组件)加载 SWF 文件时,该 HTMLLoader 对象将用作外部容器。因此,您可以使用外部接口在加载的 SWF 中的 ActionScript 代码和在 HTMLLoader 中加载的 HTML 页面中的 JavaScript 代码之间通信。