首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex 自定义组件 (最好重写的步骤) 2

2012-11-09 
flex 自定义组件 (最好重写的方法) 2如要重写组件,就不得不了解Flex中组件初始化过程。初始化过程中,系统依

flex 自定义组件 (最好重写的方法) 2

如要重写组件,就不得不了解Flex中组件初始化过程。初始化过程中,系统依次调用组件的一下方法Constructor -> createChildren() ->commitProperties() -> measure() ->updateDisplayList()

?

介绍下各个函数的作用:

Constructor构造器:设置默认值,初始化属性,默认值最合适的地方。

createChildren用来创建组件的子对象(因为在组件加入容器之前添加子对象没有意义,此方法addChild是最合适的地方)

commitProperties用来处理属性值更新(多个属性值更新后统一处理入口和单值多次修改后处理入口)

measure设置组件一些默认显示属性大小(以便Flex布局管理器能正确知道该组件的大小,给其分配适当空间)
updateDisplayList用来重绘组件,子对象布局逻辑等

?

添加了可视化元素的自定义组建(说得直白点,就是样子和基类组件不同了),必须要重写createChildren()函数和updateDisplayList()函数。

当自定义的组建需要对传入的某个属性做出反应的话,就应该重写commitProperties函数。(调用invalidateProperties)

当自定义的组件和基类组件的大小不一致时,就应该重写measure方法,保证提供正确的大小信息。(调用invalidateSize)

当组件需要调整子对象全局显示逻辑,重写updateDisplayList,调用invalidateDisplayList

?

综合看来commitProperties,measure和updateDisplayList三个方法对应各自职责,但某些情况下measure和updateDisplayList处理边界有点模糊,个人更倾向于只重写和调用updateDisplayList

?

热点排行