一、Flash 组件概述
组件是带有参数的电影剪辑,这些参数可以用来修改组件的外观和行为。每个组件都有预定义的参数,并且它们可以被设置。每个组件还有一组属于自己的方法、属性和事件,它们被称为应用程序程接口(Application Programming Interface,API)。使用组件,可以使程序设计与软件界面设计分离,提高代码的可复用性。Flash MX 2004 或 Flash MX Professional 2004 中包含的组件不是 FLA 文件,而是 SWC 文件。SWC 是用于组件的 Macromedia 文件格式。库项目中的电影剪辑可以被预编译成swf文件。这样可以缩短影片测试和发布的执行时间。将 SWC 文件拷贝到 First Run\Components目录后,该组件便会出现在“组件”面板中。
二、组件基类
Flash 自带的组件都位于mx.controls包中。组件直接或间接继承于UIComponent类,UIComponent类对UIObject类做了扩展,而UIObject类又是MovieClip类的子类。MovieClip类不属于任何包,定义文件位于FlashInstalDir\en\First Run\Classes目录。UIComponent类和UIObject类都位于mx.core包中,定义文件位于FlashInstalDir\en\First Run\Classes\mx\core目录。
UIObject类对MovieClip类进行封装,所有Flash V2组件都可以共享它的方法、属性和事件。UIObject类使组件在样式、事件和缩放比例调整上得到了实现。它提供了动态创建删除组件的方法:
·createObject方法:直接调用attachMovie函数,返回一个MovieClip类型的引用。
·createClassObject方法:调用createObject方法,创建一个指定类的组件实例,并返回所创建的组件的引用。
·createEmptyObject方法:创建一个空的UIObject实例。
·destroyObject方法:使用delete语句删除已经创建的组件实例。
UIObject还封装了其它的一些方法,包括:
·redraw方法:在当前帧重新绘制组件。
·invalidate方法:标记组件,使之在下一个帧间隔重新绘制。
·move方法:把组件移动到指定位置。
·setSize方法:设置组件大小。
·setSkin方法:设置组件皮肤。
·getStyle方法:获取样式信息。
UIObject类的属性除了scaleX和scaleY外,其它都是只读属性,使用时需要注意。所以如果要在运行时调整组件外观,就必须使用UIObject类的方法。对于只读属性的赋值是无效的,即使是对非只读属性的赋值,有时也会造成组件在外观显示上的差错。UIObject类还定义了一系列的事件,包括加载事件(load)、卸载事件(unload)、移动事件(move)、重绘事件(draw)和大小调整事件(resize)。
利用UIObject类的组件创建方法,可以在运行时创建组件实例。
UIComponent类从UIObject类继承,它并不是一个可视的组件。和UIObject类一样,所有Flash V2组件都可以共享它的方法和属性。它实现了组件的焦点获取、键盘输入,组件的禁用和启用以及组件的按布局调整自动大小。
UIComponent类的主要方法有:
·getFocus方法:利用焦点管理器(Selection)返回一个当前获取焦点的对象的引用。
·setFocus方法:使组件获取焦点。
UIComponent类的enabled属性指定组件实例是否可用;tabIndex属性指定组件的焦点获取顺序。UIComponent类还定义一系列焦点和键盘事件:焦点获取事件(focusIn),焦点转移事件(focusOut)、键盘按下事件(keyDown)和键盘释放事件(keyUp)。
[1] [
2] [
3]

2005-09-06 00:07:44 出处:
WsirBlog