组件体系结构

Adobe® Flash Player 9.0.28.0 版及更高版本支持 Adobe® ActionScript® 3.0 组件。这些组件与在 Flash CS4 之前构建的组件不兼容。有关使用 Adobe® ActionScript® 2.0 组件的信息,请参阅《使用 Adobe® ActionScript® 2.0 组件》和《Adobe® ActionScript® 2.0 组件语言参考》。

Adobe ActionScript 3.0 用户界面 (UI) 组件是作为基于 FLA 的组件实现的,但 Flash CS5 同时支持基于 SWC 和 FLA 的组件。例如,FLVPlayback 和 FLVPlaybackCaptioning 组件是基于 SWC 的组件。您可以将其中一种类型的组件置于 Components 文件夹中以使其显示在“组件”面板中。这两种类型的组件的构建方式不同,因此在这里将它们分开介绍。

ActionScript 3.0 基于 FLA 的组件

ActionScript 3.0 用户界面组件是具有内置外观的基于 FLA (.fla) 的文件,您可以通过在舞台上双击组件访问此类文件以对其进行编辑。这种组件的外观及其他资源位于时间轴的第 2 帧上。双击这种组件时,Flash 将自动跳到第 2 帧并打开该组件外观的调色板。下图显示了针对 Button 组件显示的外观调色板。

Button 组件的外观

有关组件外观和自定义组件的详细信息,请参阅 自定义 UI 组件 自定义 FLVPlayback 组件

为了加快应用程序的编译速度并避免与 ActionScript 3.0 设置冲突,Flash CS5 基于 FLA 的 UI 组件还包含一个含有该组件的已编译 ActionScript 代码的 SWC。ComponentShim SWC 放置在舞台上每个用户界面组件的第 2 帧上,以便使预编译的定义可用。若要使某一组件可用于 ActionScript,该组件必须位于舞台上或位于库中,并且在其“链接属性”中已选中“在第一帧导出”选项。若要使用 ActionScript 创建组件,还必须使用 import 语句导入类以访问该类。有关 import 语句的信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》

基于 SWC 的组件

基于 SWC 的组件也有一个 FLA 文件和一个 ActionScript 类文件,但它们已编译并导出为 SWC。SWC 文件是一个由预编译的 Flash 元件和 ActionScript 代码组成的包,使用它可避免重新编译不会更改的元件和代码。

FLVPlayback 和 FLVPlaybackCaptioning 组件是基于 SWC 的组件。它们具有外部外观,而不是内置外观。FLVPlayback 组件具有默认外观,您可以通过以下方式更改其默认外观:从预设计外观的集合中选择一种外观,基于“组件”面板中的 UI 控件(BackButton、BufferingBar 等)自定义控件或者创建自定义外观。有关详细信息,请参阅 自定义 FLVPlayback 组件

在 Flash 中,您可以按如下方式将影片剪辑转换为编译剪辑:

编译影片剪辑

  • 右击 (Windows) 或按住 Control 单击 (Macintosh)“库”面板中的影片剪辑,然后选择“转换为编译剪辑”。

    编译剪辑的行为方式与从中编译它的影片剪辑相似,但与普通影片剪辑相比,编译剪辑的显示速度和发布速度要快得多。编译剪辑无法进行编辑,但其属性可以显示在“属性”检查器和“组件”检查器中。

    SWC 组件包含编译剪辑、此组件的预编译 ActionScript 定义以及描述此组件的其他文件。如果您创建自己的组件,则可以将其导出为 SWC 文件以便分发。

导出 SWC 文件

  • 选择“库”面板中的影片剪辑并右键单击 (Windows) 或按住 Control 单击 (Macintosh),然后选择“导出 SWC 文件”。

    注: Flash CS4 或更高版本的 SWC 文件的格式与 Flex SWC 格式兼容,因此可以在这两个产品之间交换 SWC 文件,但交换后文件可能会发生修改。

有关创建基于 SWC 的组件的信息,请参阅 www.adobe.com/go/learn_fl_creating_components_cn

ActionScript 3.0 组件 API

每个 ActionScript 3.0 组件都是基于一个 ActionScript 3.0 类构建的,该类位于一个包文件夹中,其名称格式为 fl. packagename . className 。例如,Button 组件是 Button 类的实例,其包名称为 fl.controls.Button 。将组件类导入应用程序中时,必须引用包名称。可以用以下语句导入 Button 类:

import fl.controls.Button;

有关组件类文件的位置的详细信息,请参阅 使用组件文件

组件的类定义了一些方法、属性、事件和样式,使用它们可以在应用程序中与该组件进行交互。ActionScript 3.0 UI 组件是 Sprite 和 UIComponent 类的子类,继承了它们的属性、方法和事件。Sprite 类是基本的显示列表构造块,与 MovieClip 类似,但不具有时间轴。UIComponent 类是所有可视组件(交互式和非交互式)的基类。每个组件的继承路径及其属性、方法、事件和样式都在 Adobe 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中进行了介绍。

所有 ActionScript 3.0 组件都使用 ActionScript 3.0 事件处理模型。有关事件处理的详细信息,请参阅 处理事件 《ActionScript 3.0 编程》