         systemManager.stage.removeEventListener(Event.MOUSE_LEAVE, mouseEventHandler);
     }
     
-    /**
-     *  @private
-     */
-    protected function enableChangedHandler(event:Event):void
-    {
-        // Since enabled is part of our state, we need to invalidate it on changes.
-        invalidateSkinState();
-    }
     
     /**
      *  @private

            
        return "up";
    }
    
    /**
     *  @inheritDoc
     */
    override protected function commitSkinState(newState:String):void
    {
        super.commitSkinState(newState);
        
        // Our state has changed, see whether we need to start/stop dispatching buttonDown
        checkDownEventConditions();
    } 

    private function checkDownEventConditions():void
    {
        var isCurrentlyDown:Boolean = isDown();

        // If down state hasn't changed, simply return
        if (!flags.update(downEventFiredFlag, isCurrentlyDown))
            return;

        if( isCurrentlyDown )
            dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN));
        
        checkAutoRepeatTimerConditions( isCurrentlyDown );
    }

    //--------------------------------------------------------------------------
    //

            labelField.styleName = this;
        }
    }
    
    /**
     *  @private
     */
    override protected function commitProperties():void
    {
        super.commitProperties();
        
        if (checkForButtonDownConditions)
        {
            var isCurrentlyDown:Boolean = isDown();

            // Only if down state has changed, do we need to do something
            if (flags.update(downEventFiredFlag, isCurrentlyDown))
            {
                if( isCurrentlyDown )
                    dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN));
            
                checkAutoRepeatTimerConditions( isCurrentlyDown );
            }
            
            checkForButtonDownConditions = false;
        }
    }

    //--------------------------------------------------------------------------
    //
