介绍V2组件架构

翻译:xfykzz
本篇将介绍V2组件架构,并会讨论组件开发者十分熟悉的此体系下的一些概念.当在Flash MX 2004下创建组件时,您可以选择在MM的组件体系(V2 体系)下构建,或者使用传统的影片剪辑类(MovieClip class).如果您要确保您创建的组件与MM自身的组件有很好的兼容性,那么在V2框架下创建组件和基础类将会变得十分重要.使用V2基础类的另一个好处是MM已经花了很大精力在建立一套省时的组件体系上.在创建组件时常出现的小问题在该体系中也被考虑到了,它使得您能专注于组件的功能上.对于新的开发者来说,他们会发现在V2组件体系下工作会比在MX下直接操作影片剪辑要自然得多.
注意:本篇文章是在build 2.0.0.377组件架构下写的.查看一下您的组件架构版本是十分重要的.如果您碰巧在一个新版架构下工作的话您会发现有一些变化.这个版本(7.0.0和7.0.1)在Flash MX 2004 下是可行的.
组件体系的基础类:UIObject和UIComponent
UIObject类是MovieClip类的子类.它包括该框架的大多数功能.UIComponent是UIObject类的子类.UIComponent是一个我们创建组件时的常用类.
本篇将从介绍UIObject类开始,然后讨论UIComponent类.对UIObject有一定的了解将会对UIComponent类和V2组件体系有很大帮助,因为UIComponent类的应用很大部分都是继承自UIObject类.
I.安装与应用核心
UIObject是MovieClip的子类,所以,您首先得在库中建一个影片剪辑元件.一般地,如果您创建一个与类有关的MovieClip,您创建它并在库中添加关联.如果您的组件继承自UIObject,您需要做一些额外的工作来确保所有的架框包含于您的组件中.您能在这里找到关于设置组件的详细资料.
我们将从一个最基本的组件类的结构开始,该类将与您的库中元件相关联.import mx.core.UIObject;
class com.rewindlife.controls.TextBox extends UIObject
{
};
以上的例子显示了一个不做任何事儿的空组件.该文件必须保存在合适的文件夹下,文件名为"TextBox.as".
说明:如果您想在组件中使用元数据标签,您得注意"import mx.core.UIObject"这一句.理论上来说,您应该用类的全名来做为关联.然而,如果您能正确地使用元数据标签的话,在Flash MX 2004环境下允件您导入您扩展的类,因为如此,将父类一块儿导入更易行一些.元数据标签通常包含了组件的功能.本篇文章将不会讨论元数据,您可以在
[url=http://livedocs.macromedia.com/flash/mx2004/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004_Documentation&file=05_cre29.htm]这里[/url]
获得更多信息
a.必要属性
当将UIObject作为基本类使用时,您的组件必须声明并给属性赋值.
元件名称
"元件名称"属性应该设置得和该元件在库中的链接ID名称一样.该属性将使createClassObject()方法在运行时从库中找到该组件并创建一个实例到舞台上.如果您的影片剪辑组件在库中的链接ID名称为"YourComponent",那么该属性名称就应设为"YourComponent".
[img]/uploads/allimg/080329/1713530.gif[/img]
public static var symbolName:String = "com.rewindlife.controls.TextBox";
说明:对于链接ID的一点建议.MM通过链接ID来标识组件.尽管如此,如果您仍按习惯命名的话,其名称很可能会和库中其它名称相冲突.在新版Flash中,组件开发人员通常会在链接ID上加上自定义的前缀来相互区别.在2004中您当然可以这样.例如,您可以使用"usButton"或"com.ultrashock.controls.Button"作为您按钮组件的名称.我推荐使用类名全称的方法,虽然这完全出于个人爱好.如果您想自己的组件能与MM的组件相容性很好地话,我反对直接用"Button"做为链接ID,而且该名称已被MM的按钮组件使用了.未来MM很可能会建议使用完全打包过的方法.
元件源
"元件源"属性也会被creatClassObject()方法使用,特别是当该组件是动态创建的.组件框架使用Object.
registerClass()使得元件源与组件相关联.您得把类名全称赋给它.public static var symbolOwner:Object = com.rewindlife.controls.TextBox;
类名
"类名"属性不是必须的,但通常您应该赋值给它.该属性会被getStyle()方法调用.如果像这样设置"_global.[
className]",getStyle()能够识别并返回适当的值.很多时候该属性值是不受限制的类名,尽管您应该使用统一的标识符来保证不受冲突.例如,如果您创建了一个按钮组件,您应该保证类名的统一,比如用"myButton"来作类名.
本文转自:http://www.5uflash.com/flashjiaocheng/Flashzujianxuexi/1306.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值