侦听启用/禁用状态更改

时间:2009-12-02 21:27:57

标签: flex actionscript-3 mxml

对于我的自定义组件,当它们从启用到禁用或禁用启用时,我想触发自定义事件。 我在找不到相关的事件。 有什么线索吗?

2 个答案:

答案 0 :(得分:5)

UIComponent会从enabledChanged方法调度set enabled类型的事件。以下是该方法的来源:

public function set enabled(value:Boolean):void
{
    _enabled = value;

    // Need to flush the cached TextFormat
    // so it recalcs with the disabled color,
    cachedTextFormat = null;

    invalidateDisplayList();

    dispatchEvent(new Event("enabledChanged"));
}

您可以使用以下方式收听:

myComponent.addEventListener("enabledChanged", handleEnabledChanged);

答案 1 :(得分:1)

如果它们是自定义组件,并且我假设您正在扩展UIComponent(或子类),为什么不重写Enabled setter方法,然后在其中调度自定义事件?

类似的东西:

override public function set enabled(value:Boolean):void {
   super.enabled = value;
   dispatchEvent(new EnabledChangedEvent());
}