Flash组件应用和研发周详讲解
2008-04-02 10:45:29来源:互联网 阅读 ()
组件是带有参数的电影剪辑,这些参数能够用来修改组件的外观和行为。每个组件都有预定义的参数,并且他们能够被配置。每个组件更有一组属于自己的方法、属性和事件,他们被称为应用程式程接口(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)。
在Flash MX 2004和 Flash MX Professional 2004自带了一套组件称为Flash V2组件,他是从Flash MX的V1组件升级而来的,V1组件和V2组件尽量不要一起使用以免发生一些错误。V2组件支持实时预览,使研发者在编辑状态下就能看到组件的外观效果。研发者能够自行配置是否需要实时预览和实时预览的模式,以节省电脑资源。在ControlàEnable Live Preview菜单配置是否使用实时预览,在ViewàPriview Mode菜单选择预览模式。组件实质上是一些被编译好的电影剪辑,其格式为SWC。SWC文档类似和Zip文档,能够使用一般的解压缩程式进行解压查看其内容。电影剪辑能够在编辑环境中直接发布为组件,也能够直接编译存储为swc格式的组件文档,便于其他研发者使用。同样,研发者也能够从外部导入组件。
使用组件,必须把组件面板中所需要的组件拖到舞台(Stage),使组件出现在库面板。这样组件就能够象普通的库项目相同被使用。使用脚本能够动态的创建组件实例,运行时创建组件能够有三个方法:createObject()、creatClassObject()和attachMovie()。attachMovie()是MovieClip类的方法,createObject()和creatClassObject()是UIObject类方法,但事实上他们都是对attachMovie()的直接或间接调用。
组件被添加后能够在属性或参数面板中直接配置组件的参数。另外还要为组件定义事件,最简单的方法是使用on(eventName)进行定义。另外还能够使用侦听器和事件处理函数等定义组件事件的处理方法。组件的事件定义比较灵活,使用何种方式定义取决和个人的习惯和偏好。当事件发生时,组件会广播一个Object类型的事件参数,该参数中包括了事件发生对象和事件类型的信息。另外,使用深度管理器(DepthManager)能够对组件进行深度管理。
Flash组件最大的特点是研发者能够自定义组件,尤其是界面元素的自定义,使其更具备吸引力。V2组件有他自己的一套默认界面方案,称为主题(Theme)。主题包括两个方面:样式(Style)和外观(Skin)。UIObject类的setStyle()和getStyle()方法能够获取和配置组件的样式。样式的配置比较简单,主要有以下三种方式:
?直接配置属性:
T.color=0xff5567;
?使用简单的setStyle()名值对方法自定义样式:
instanceName.setStyle("property", value);
?把样式对象和setStyle()方法结合使用来自定义样式:
//创建一个样式对象
var styleObj = new mx.styles.CSSStyleDeclaration;
//刻画样式细节
//……
styleObj.fontSize = 18;
//把样式应用到组件实例
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: FlashAS游戏教程:人物及控制
下一篇: Flash出色实例:爆炸效果动画
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash