我从TextField继承了一个自定义组件。组件需要知道何时在运行时通过setStyle更改了它的任何样式。我该怎么办?这可能是显而易见的,但我找不到要覆盖的事件或适当的方法。
答案 0 :(得分:2)
如果您希望文本字段与Flex中的容器和其他组件很好地匹配,您可能希望将其包装在UIComponent
中,或让子类实现IUIComponent
和IStyleClient
或ISimpleStyleClient
接口(将调用UIComponent implements). If you do the component will work with Flex' style system and every time a style changes a method called
styleChanged`:
public function styleChanged(styleProp:String):void
请参阅http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#styleChanged()
答案 1 :(得分:1)
styleChanged()方法
public function styleChanged(styleProp:String):void
检测样式属性的更改。设置任何样式属性时,Flex会调用styleChanged()方法,并向其传递要设置的样式的名称。
这是一种在创建UIComponent的子类时可能会覆盖的高级方法。创建自定义组件时,可以覆盖styleChanged()方法以检查传递给它的样式名称,并相应地处理更改。这使您可以覆盖现有样式的默认行为,或添加自己的自定义样式属性。
如果你处理style属性,你的styleChanged()方法的覆盖应该调用invalidateDisplayList()方法,以使Flex在下一次屏幕更新时执行组件的updateDisplayList()方法。
参数styleProp:String - 样式属性的名称,如果此组件的所有样式都已更改,则返回null。