使用外部 API 的基础知识
Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本
虽然在某些情况下可以独立运行 SWF 文件(例如,如果您使用 Adobe® Flash® Professional 来创建 SWF 放映文件),但在大多数情况下,SWF 应用程序作为另一个应用程序中的元素来运行。通常,包含 SWF 的容器是 HTML 文件;在少数情况下,SWF 文件用于台式机应用程序的全部或部分用户界面。
当处理更高级的应用程序时,您可能会发现,需要在 SWF 文件和容器应用程序之间建立通信。例如,网页通常使用 HTML 格式来显示文本或其他信息,并包含 SWF 文件以显示动态可视内容,如图表或视频。在这种情况下,您可能需要建立此类通信,以便当用户单击网页上的按钮时,它将更改 SWF 文件中的某些内容。ActionScript 包含一种称为外部 API 的机制,它有助于在 SWF 文件中的 ActionScript 与容器应用程序中的其他代码之间建立这种类型的通信。
重要概念和术语
以下参考列表包含与此功能相关的重要术语:
-
容器应用程序
-
Flash Player 在其中运行 SWF 文件的应用程序,如 Web 浏览器和包括 Flash Player 内容的 HTML 页面或在网页中加载 SWF 的 AIR 应用程序。
-
放映文件
-
一个包含 SWF 内容和 Flash Player 嵌入版本的可执行文件。您可以使用 Flash Professional 或独立的 Flash Player 来创建放映文件。放映文件通常用于以 CD-ROM 形式分发 SWF 文件,或在以下类似情况下进行 SWF 文件分发:下载文件大小不是问题,并且 SWF 作者希望确保用户能够运行 SWF 文件,而无论用户计算机上是否安装了 Flash Player。
-
代理
-
中介应用程序或代码,它代表一个应用程序(“调用应用程序”)调用另一应用程序(“外部应用程序”)中的代码,并将值返回到调用应用程序。可以出于各种不同的原因来使用代理,其中包括:
-
串行化
-
将对象或数据值转换为某种格式,这种格式可用于通过消息在两个编程系统之间传递值,如通过 Internet 或在一台计算机上运行的两个不同应用程序之间进行传递。
完成示例
提供的许多代码示例是用于演示的较小的代码清单,而不是完整的工作示例或用于检查值的完整代码。由于使用外部 API 需要(根据定义)编写 ActionScript 代码以及容器应用程序中的代码,因此测试示例涉及创建一个容器(例如,包含 SWF 文件的网页)和使用代码清单与该容器交互。
要测试 ActionScript 与 JavaScript 之间的通信的示例,请执行以下操作:
-
使用 Flash Professional 创建一个新文档并将该文档保存到您的计算机上。
-
从主菜单中,选择“文件”>“发布设置”。
-
在“发布设置”对话框中,在“格式”选项卡上确认选中了“Flash”和“HTML”复选框。
-
单击“发布”按钮。这将在同一个文件夹中生成一个 SWF 文件和一个 HTML 文件,且两个文件的名称与您用于保存 文档的名称相同。单击“确定”以关闭“发布设置”对话框。
-
取消选择“HTML”复选框。现在 HTML 页即生成,您将修改该页来添加适当的 JavaScript 代码。取消选择“HTML”复选框可确保在您修改 HTML 页之后,Flash 在发布 SWF 文件时不会使用新的 HTML 页覆盖您所做的更改。
-
单击“确定”以关闭“发布设置”对话框。
-
使用 HTML 或文本编辑器应用程序打开由 Flash 在您发布 SWF 文件时创建的 HTML 文件。在 HTML 源代码中,添加开始和结束
script
标签,并将示例代码清单中的 JavaScript 代码复制到其中:
<script>
// add the sample JavaScript code here
</script>
-
保存该 HTML 文件并返回到 Flash。
-
选择时间轴的第 1 帧中的关键帧,并打开“动作”面板。
-
将 ActionScript 代码清单复制到“脚本”窗格中。
-
从主菜单中,选择“文件”>“发布”以使用您所做的更改更新该 SWF 文件。
-
使用 Web 浏览器打开您编辑过的 HTML 页,查看该页并测试 ActionScript 与 HTML 页之间的通信。
要测试 ActionScript 与 ActiveX 容器之间的通信的示例,请执行以下操作:
-
使用 Flash Professional 创建一个新文档并将该文档保存到您的计算机上。您可能想要将它保存在容器应用程序预计能够在其中找到 SWF 文件的文件夹中。
-
从主菜单中,选择“文件”>“发布设置”。
-
在“发布设置”对话框中,在“格式”选项卡上确认仅选中了“Flash”复选框。
-
在“Flash”复选框旁边的“文件”字段中,单击文件夹图标以选择 SWF 文件将发布到的文件夹。通过设置 SWF 文件的位置,您可以(举例而言)将文档放在一个文件夹中,而将发布的 SWF 文件放在另一个文件夹(例如包含容器应用程序的源代码的文件夹)中。
-
选择时间轴的第 1 帧中的关键帧,并打开“动作”面板。
-
将示例的 ActionScript 代码复制到“脚本”窗格中。
-
从主菜单中,选择“文件”>“发布”以重新发布该 SWF 文件。
-
创建并运行您的容器应用程序,以测试 ActionScript 与容器应用程序之间的通信。
有关使用外部 API 与 HTML 页面通信的完整示例,请参阅以下主题:
这些示例包含完整代码,其中包括 ActionScript 和容器错误检查代码,您在使用外部 API 编写代码时将用到这些代码。有关使用外部 API 的另一个完整示例,请参阅《ActionScript 3.0 参考》中 ExternalInterface 类的类示例。
|
|
|