一、为什么要重写组件

1、在FLEX已有组件无法满足业务需求,或是需要更改其可视化外观等特性时,直接进行继承扩展。举例,继承BUTTON组件的长文本却不自动换行的自定义控件。
2、为了模块化设计或进一步重用,需要对FLEX组件进行组合。比如一个包括TEXTAREA,BUTTON的复合控件。

二、重写组件需要经常换位思考的三个角色

1、作为重写组件的使用者,有哪些需求。比如需要在MXML标签和AS代码中暴露哪些属性及对应默认值、事件和事件的处理逻辑。
2、重写组件一般需要使用FLEX原有组件,要站在原有开发者的角度了解设计规则。
3、作为重写组件的设计者,在满足需求的情况下尽量做到可复用、低耦合易扩展等设计原则,让新组件像FLEX原组件一样好用。

三、重写组件AS方式和MXML方式的采用规则

1MXML文件和AS文件最后都会被编译成AS类,只不过MXML编译速度稍慢一些
2、如果MXMLAS都能完成的一个简单组件,MXML更容易被创建和控制布局
3、当要覆盖组件的某些方法时只能用AS方式
4、创建一个直接继承UIComponent的子类时只能用AS
5、创建非可视化组件比如FormattervalidatorEffect……时,只能用AS
6、要为组件添加日志功能时,只能用AS.