我正在使用一个自定义组件,我需要能够知道状态何时更改。
为StateChangeEvent.CURRENT_STATE_CHANGE
添加事件侦听器是侦听状态更改的唯一方法吗?还是有可以覆盖的方法?
public function MyComponent() extends SkinnableComponent {
public function MyComponent() {
addEventListener(StateChangeEvent.CURRENT_STATE_CHANGE, onCurrentStateChange);
}
private function onCurrentStateChange(event:StateChangeEvent):void {
//invalidateSkinState();
}
}
我查看了UIComponent.commitCurrentState()
(事件被调度的位置),它被标记为private。
2条答案
按热度按时间v8wbuo2f1#
您可以覆写:
enterState
还有其他事件,如
enterState
:在组件进入视图状态后调度。
stateChangeComplete
:在组件进入新状态并且播放完转换到该状态的任何状态转换动画后调度。如果状态之间没有播放转换,则立即调度该事件。如果转换正在进行时组件切换到其他状态,则在组件完成转换到该新状态后调度此事件。
91zkwejq2#
看起来有一个可以扩展的
UIComponent.stageChanged()
方法:当状态更改时调用此方法,以检查特定于状态的样式是否应用于此组件。如果当前状态有可能存在匹配的CSS伪选择器,则需要为此示例重新生成样式缓存,如果
recursive
参数设置为true
,则可能需要为所有子项重新生成样式缓存。助理秘书长: