使用组件 |
|
|
|
| 创建组件 > 选择父类 | |||
创建组件时,首先要确定是否扩展某个第 2 版类。如果选择扩展某个第 2 版类,则可以扩展某个组件类(例如,Button、CheckBox、ComboBox、List 等)或某个基类(UIObject 或 UIComponent)。除 Media 组件之外,所有其它组件类都扩展基类;如果扩展组件类,该类也会自动从基类继承。
两个基类为组件提供了常见功能。通过扩展这些类,组件一开始即具备一组基本的方法、属性和事件。
在第 2 版框架中,您无需创建 UIObject 子类、UIComponent 子类或任何其它类。即使组件类直接继承自 MovieClip 类,也可以使用许多强大的组件功能:导出到 SWC 文件或编译剪辑、使用内置实时预览、查看可检查属性等等。但是,如果要将组件用于 Macromedia 第 2 版组件,并要使用管理器类,就需要扩展 UIObject 或 UIComponent。
下表简要说明第 2 版基类:
|
基类 |
扩展 |
说明 |
|---|---|---|
mx.core.UIObject
|
MovieClip |
UIObject 是所有图形对象的基类。它可以有形状、可以自己进行绘制,还可以是不可见的。 UIObject 提供以下功能:
|
mx.core.UIComponent
|
UIObject |
UIComponent 是所有组件的基类。 UIComponent 提供以下功能:
|
基于 Macromedia Component Architecture 第 2 版的组件源自 UIObject 类,该类是 MovieClip 类的子类。MovieClip 类是 Flash 中可以在屏幕上表示可视对象的所有类的基类。
UIObject 添加用于处理样式和事件的方法。它在加载和卸载时(load 和 unload)、布局更改时(move、resize)以及隐藏或显示时(hide 和 reveal),都会在绘制(draw 事件等效于 MovieClip.onEnterFrame 事件)之前将事件发送到它的侦听器。
UIObject 另外提供只读变量来确定组件的位置和大小(width、height、x、y),并提供 move() 和 setSize() 方法来改变对象的位置和大小。
UIObject 类实现以下功能:
UIComponent 类是 UIObject 的子类(请参阅"组件语言参考"中的UIComponent 类)。它是处理用户交互(鼠标和键盘输入)的所有组件的基类。UIComponent 类允许组件执行以下操作:
为了能够更方便地构造组件,可以扩展任何类的子类,这样也就不需要直接扩展 UIObject 或 UIComponent 类。如果扩展任何其它第 2 版组件类(Media 组件除外),默认情况下也会扩展 UIObject 和 UIComponent。您可以通过扩展"组件"字典中列出的任何组件类来创建新组件类。
例如,如果要创建一个组件,其行为与 Button 组件的行为几乎相同,就可以扩展 Button 类,而不必从基类重新创建 Button 类的所有功能。
下图显示了第 2 版组件的层次结构:

第 2 版组件层次结构
此文件的 FlashPaper 版本可在 Flash 安装目录的以下位置找到:Flash 8\Samples and Tutorials\Samples\Components\arch_diagram.swf。
您可以选择不扩展第 2 版类,而让组件直接继承 ActionScript MovieClip 类。但是,如果需要 UIObject 和 UIComponent 的任何功能,则必须亲自构建。您可以打开 UIObject 和 UIComponent 类 (First Run/Classes/mx/core) 来检查它们的构造方式。
|
|
|
|