向 Flash 文档中添加组件

从"组件"面板将组件拖到舞台上时,会将一个编译剪辑 (SWC) 元件添加到"库"面板中。将 SWC 元件添加到库中后,就可以将多个实例拖动到舞台上。也可以通过使用 UIObject.createClassObject() ActionScript 方法,在运行时将该组件添加到文档中。有关详细信息,请参阅《ActionScript 2.0 组件语言参考》。

注意

Menu 和 Alert 这两个组件例外,无法使用 UIObject.createClassObject() 来实例化。它们使用的是 show() 方法。

在创作时添加组件

您可以使用"组件"面板向文档添加组件,然后将组件从"库"面板中拖到舞台,向文档添加该组件的更多实例。在"属性"检查器的"参数"选项卡或"组件"检查器的"参数"选项卡中可以设置其它实例的属性。

使用"组件"面板向 Flash 文档添加组件:

  1. 设置发布设置,以便为 ActionScript 2.0 发布。

    (选择"文件">"发布设置">"Flash"选项卡,在"ActionScript"下拉菜单中选择"ActionScript 2.0"。)

  2. 选择"窗口">"组件"。
  3. 请执行以下操作之一:
    • 将组件从"组件"面板拖动到舞台上。
    • 双击"组件"面板中的一个组件。
  4. 如果该组件为 FLA 文件(安装的所有第 2 版组件都是 SWC 文件),并且您已经编辑了同一组件的另一个实例的外观,或者编辑了与要添加的组件共享外观的组件的外观,则请执行以下操作之一:
    • 选择"不要替换现有项目",保留已编辑的外观并将经过编辑的外观应用于新组件。
    • 选择"替换现有项目",以默认外观替换所有外观。新组件和该组件所有以前的版本,或者与它共享相同外观的组件的以前版本都将使用默认外观。
  5. 在舞台上选择该组件。
  6. 选择"窗口">"属性">"属性"。
  7. 在"属性"检查器中,输入组件实例的实例名称。
  8. 单击"参数"选项卡,然后为实例指定参数。

    下图显示了位于 TipCalculator.fla 范例文件中的 TextInput 组件的"属性"检查器。要访问 TipCalculator.fla 范例文件,请访问"Flash 范例"页,网址为 www.adobe.com/go/learn_fl_samples_cn。

    参数面板

    有关详细信息,请参阅设置组件参数

  9. 通过编辑宽度和高度的值,按需更改组件的大小。

    有关调整特定组件类型大小的详细信息,请参阅《ActionScript 2.0 组件语言参考》中的各个组件条目。

  10. 如果要更改组件的颜色和文本格式,请执行以下一项或多项操作:
    • 通过使用可用于所有组件的 setStyle() 方法设置或更改组件实例的特定样式属性值。有关详细信息,请参阅《ActionScript 2.0 组件语言参考》中的"UIObject.setStyle()"
    • 在分配给所有第 2 版组件的全局样式声明中编辑多个属性。
    • 为特定组件实例创建自定义样式声明。

    有关详细信息,请参阅"使用样式自定义组件的颜色和文本"

  11. 如果要自定义组件的外观,请执行以下操作之一:

使用 ActionScript 在运行时添加组件

本节的说明假定您具备 ActionScript 的中级或高级知识。

使用 createClassObject() 方法(大多数组件都从 UIObject 类继承该方法)向 Flash 应用程序动态添加组件。例如,您可以添加基于用户设置的首选项(如网站入口首页上的首选项)来创建页面布局的组件。

随 Flash 安装的第 2 版组件位于包目录中。(有关详细信息,请参阅 Learning ActionScript 2.0 in Adobe Flash(《学习 Adobe Flash 中的 ActionScript 2.0》)中的"关于包"。)如果在创作时向舞台添加组件,使用其实例名称(例如,myButton)即可引用该组件。但是,如果使用 ActionScript(在运行时)向应用程序添加组件,则必须指定其全限定类名称(例如 mx.controls.Button),或者使用 import 语句来导入包。

例如,要编写引用 Alert 组件的 ActionScript 代码,可以使用 import 语句来引用类,如下所示:

import mx.controls.Alert;
Alert.show("The connection has failed", "Error");

或者,也可以使用完整的包路径,如下所示:

mx.controls.Alert.show("The connection has failed", "Error");

有关详细信息,请参阅 Learning ActionScript 2.0 in Adobe Flash(《学习 Adobe Flash 中的 ActionScript 2.0》)中的"关于导入类文件"

您可以使用 ActionScript 方法为动态添加的组件设置其它参数。有关详细信息,请参阅《ActionScript 2.0 组件语言参考》。

注意

要在运行时向文档中添加某个组件,则在编译 SWF 文件时该组件必须在库中。若要将组件添加到库中,请将组件图标从"组件"面板拖到库中。此外,如果您要将包含动态实例化(使用 ActionScript 实例化)的组件的影片剪辑加载到另一个影片剪辑中,则在编译 SWF 文件时父影片剪辑库中必须有该组件。

使用 ActionScript 向 Flash 文档中添加组件:

  1. 将组件从"组件"面板拖入当前文档的库中。

    注意

    默认情况下,组件被设置为"在第一帧导出"(在 Windows 中右键单击,或在 Macintosh 中按住 Control 单击,然后选择"链接"菜单选项,可看到"在第一帧导出"设置)。如果要对包含组件的应用程序适用预加载器,则需要更改导出帧,有关说明,请参阅配合使用预加载器和组件

  2. 在时间轴中选择一帧放置要添加的组件。
  3. 如果"动作"面板尚未打开,请将其打开。
  4. 调用 createClassObject(),以便在运行时创建组件实例。

    此方法可以单独调用,也可以从任何组件实例调用。createClassObject() 方法采用以下参数:组件类名称、新实例的实例名称、深度以及一个可用来在运行时设置属性的可选初始化对象。

    在类名称参数中可以指定类包,如下例所示:

    createClassObject(mx.controls.CheckBox, "cb", 5, {label:"Check Me"}); 
    

    或者,也可以导入类包,如下例所示:

    import mx.controls.CheckBox;
    createClassObject(CheckBox, "cb", 5, {label:"Check Me"}); 
    

    有关详细信息,请参阅"处理组件事件"以及《ActionScript 2.0 组件语言参考》中的"UIObject.createClassObject()"