flex 自定义组件 (最好重写的方法) 2
?
介绍下各个函数的作用:
Constructor构造器:设置默认值,初始化属性,默认值最合适的地方。
createChildren用来创建组件的子对象(因为在组件加入容器之前添加子对象没有意义,此方法addChild是最合适的地方)
commitProperties用来处理属性值更新(多个属性值更新后统一处理入口和单值多次修改后处理入口)
measure设置组件一些默认显示属性大小(以便Flex布局管理器能正确知道该组件的大小,给其分配适当空间)
updateDisplayList用来重绘组件,子对象布局逻辑等
?
添加了可视化元素的自定义组建(说得直白点,就是样子和基类组件不同了),必须要重写createChildren()函数和updateDisplayList()函数。
当自定义的组建需要对传入的某个属性做出反应的话,就应该重写commitProperties函数。(调用invalidateProperties)
当自定义的组件和基类组件的大小不一致时,就应该重写measure方法,保证提供正确的大小信息。(调用invalidateSize)
当组件需要调整子对象全局显示逻辑,重写updateDisplayList,调用invalidateDisplayList
?
综合看来commitProperties,measure和updateDisplayList三个方法对应各自职责,但某些情况下measure和updateDisplayList处理边界有点模糊,个人更倾向于只重写和调用updateDisplayList?