`
wangyujie
  • 浏览: 53805 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

继承 UIComponent 自定义组件

    博客分类:
  • flex
 
阅读更多


UIComponent类是所有可视化组件的基类包括交互式和非交互式的。交互式的组件支持鼠标和键盘事件,非交互式组件像Label和ProgressBar,只是简单的实现内容。这个类不能通过MXMLtag调用,必须使用它的具体子类。
1.1 createChildren
建立子对像,此方法不用你去调用,Flex在你将此自定义组件使用addChild方法加入到父组件时自动调用。
1.2 commitProperties
设置组件属性。这是一个高级方法,可以在你的子组件类中进行重载。你不能直接调用这个方法,FLEX在你使用addChild()方法在容器中添加子组件或者是当你调用invalidateProperties()方法是会自动调用commitProperties方法。调用commitProperties方法出现在调用measure方法之前。因此可为measure()方法提供最新的属性信息
1.3 Measure
测量此方法的作用是设置组件的默认尺寸。
此方法不用你去调用。当你调用invalidateSize ()(刷新尺寸)、addChild()(增加子组件)方法时,Flex会自动调用此方法。这样组件在下次显示时,就能以默认尺寸来显示。
如果你显式的设置了组件的尺寸,如<mx:Button height="10" width="10"/>,Flex就不用调用此方法了。要注意,measure()方法只是设置组件的默认尺寸,在updateDisplayList()方法中,组件具备的实际尺寸(actual size)与默认尺寸可能不同。
Flex中的每个组件都是有默认尺寸的。如这样写:<mx:Button />,Flex就会自动给一个尺寸。如果你想重写默认尺寸,可以重新设置measuredHeight 、measuredWidth、measuredMinHeight、measuredMinWidth。
package myComponents
{
// asAdvanced/myComponents/DeleteTextArea.as
import mx.controls.Button;
public class BlueButton extends Button {
public function BlueButton() {
super();
}
override protected function measure():void {
super.measure();
measuredWidth=100;
measuredMinWidth=50;
measuredHeight=50;
measuredMinHeight=25;
}
}
}
1.4 updateDisplayLis
此方法不用你去调用。当你调用invalidateDisplayList ()(刷新显示)、addChild()(增加子组件)方法时,Flex会自动调用此方法。这样组件在下次显示时,就能以新的样子来显示。其实类似VC++中的PAINT消息处理。
此方法的主要作用为:
? 更改组件的尺寸和位置。要改变尺寸,在此方法中使用setActualSize()方法,而不是使用width和height属性来完成。要改变位置,在此方法中使用move()方法,而不是使用x和y属性来完成。
绘制可视元素,如皮肤、样式、边框。你可以使用Flash Drawing API来完成。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics