易截截图软件、单文件、免安装、纯绿色、仅160KB

重写flex组件

一、为什么要重写组件
1、在FLEX已有组件无法满足业务需求,或是需要更改其可视化外观等特性时,直接进行继承扩展。举例,继承BUTTON组件的长文本却不自动换行的自定义控件。
2、为了模块化设计或进一步重用,需要对FLEX组件进行组合。比如一个包括TEXTAREA,BUTTON的复合控件。
二、重写组件需要经常换位思考的三个角色
1、作为重写组件的使用者,有哪些需求。比如需要在MXML标签和AS代码中暴露哪些属性及对应默认值、事件和事件的处理逻辑。
2、重写组件一般需要使用FLEX原有组件,要站在原有开发者的角度了解设计规则。
3、作为重写组件的设计者,在满足需求的情况下尽量做到可复用、低耦合易扩展等设计原则,让新组件像FLEX原组件一样好用。
三、重写组件AS方式和MXML方式的采用规则
1、MXML文件和AS文件最后都会被编译成AS类,只不过MXML编译速度稍慢一些
2、如果MXML和AS都能完成的一个简单组件,MXML更容易被创建和控制布局
3、当要覆盖组件的某些方法时只能用AS方式
4、创建一个直接继承UIComponent的子类时只能用AS
5、创建非可视化组件比如Formatter、validator、Effect……时,只能用AS
6、要为组件添加日志功能时,只能用AS.
四、AS方式重写组件常规步骤
1、如果有必要,为组件创建所有基于标记(tag-based)的皮肤(skins)
2、创建ActionScript类文件
⑴从一个基类扩展,比如UIComponent或者其他的组件类
⑵指定使用者能够通过MXML标记进行设置的属性
⑶嵌入(Embed)所有的图片和皮肤文件,文件大小尽可能小
⑷实现构造器,可以设置属性和样式的缺省值,或者初始化数据结构,比如数组
⑸根据需要,确定是否覆盖以下五个方法:
(a)UIComponent.createChildren()方法,创建组件的子组件
(b)UIComponent.commitProperties()方法,提交组件所有的属性变化,设置measure()方法可能使用的属性值。绝大多数情况下,都是对影响组件如何在屏幕上显示的属性使用这个方法
(c)UIComponent.measure()方法,设置组件的缺省size(measuredWidth、measuredHeight)和缺省的最小size(measuredMinWidth、measuredMinHeight)
(d)UIComponent.layoutChrome()方法,用于定义容器的边框区域和确定边框区域的位置,以及确定要在边框区域中显示的附加元素。例如,Panel 容器使用layoutChrome()方法定义panel 容器的title 区域,这个区域用来包含title 文本和close 按钮。
通常,使用RectangularBorder 类来定义容器区


相关文档:

Flex Netbeans 开发环境环境搭建

1.下载安装netbeans6(我的版本是6.7.1)
2.下载Flex Sdk 3 ,将其解压到指定的一个目录。http://www.adobe.com/cfusion/search/index.cfm?loc=en_us&term=flex+sdk&siteSection=cfusion%3Atdrc
3.下载netbeans的flex插件 http://sourceforge.net/projects/flexbean/files/
4.netbeans配置Flex插件,配置成 ......

flex 嵌入简单的html

<mx:TextArea
width=
"200"
height=
"100"
>
<mx:htmlText>
This is an example of setting a <B>
TextArea</B>
control's <I>
htmlText<I>
property.
</mx:htmlText>
</mx:TextArea>
支持的样式标记
< ......

flex与.net

本系列文章主要介绍了关于Flex与.NET结合开发中的一些互操作性,包括网络通信、数据加载、数据传输、文件传输、以及应用于Flex与.NET协作开发的通信网关开源项目FluorineFx的相关知识点。
     开源项目FluorineFx就是专门针对.NET平台与Flex通信提供的AMF协议通信网关,我们可以通过FluorineFx很方便 ......

FLEX实践—FLEX4中Theme Halo应用(一)

Flex4和Flex3的区别在这里就不多说了,有兴趣可以上网找资料。
本次的实践将通过测试用例来说明Flex4中不同Theme的应用效果
在Flash Builder4中出现了两个命名空间
xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/halo"
相应的,控件也出现了两种不同的风格,创建Theme.mx ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号