             stopTimer();
     }
 
+    /**
+     *  @private
+     */
     private function startTimer():void
     {
         autoRepeatTimer = new Timer(1);

    // -----------------------------------------------------------------------
    
    /**
     *  @private <code>true</code> when we need to check whether to dispatch
     *  a button down event
     */
     private var checkForButtonDownConditions:Boolean = false; 
    
    /**
     *  <code>true</code> when the mouse pointer is over the button. 
     */ 
    public function get isHoveredOver():Boolean
    {
        return flags.isSet(isHoveredOverFlag);
    }
    
    /**
     *  Sets the <code>isHoveredOver</code> property, 
     *  which indicates whether the mouse cursor is over the button.
     *
     *  @param value The new value of the <code>isHoveredOver</code> property.
     *  This parameter can be <code>true</code> or <code>false</code>.
     */ 
    protected function setHoveredOver(value:Boolean):void
    {
        if (!flags.update(isHoveredOverFlag, value))
            return;

        invalidateButtonState();
    }

    /**
     *  <code>true</code> if the mouse button is pressed down  
     *  while the cursor is over the button.
     */    
    public function get isMouseCaptured():Boolean
    {
        return flags.isSet(isMouseCapturedFlag);
    }
    
    /**
     *  Sets the <code>isMouseCaptured</code> property, 
     *  which indicates whether the mouse button is pressed down
     *  while the cursor is over the button.
     *
     *  @param value The new value of the <code>isMouseCaptured</code> property.
     *  This parameter can be <code>true</code> or <code>false</code>.
     */ 
    protected function setMouseCaptured(value:Boolean):void
    {
        if (!flags.update(isMouseCapturedFlag, value))
            return;

        invalidateButtonState();

     *  An instance of the Flags32 class used to manipulate Boolean properties.
     */
    protected var flags:Flags32 = new Flags32();

    //--------------------------------------------------------------------------
    //
    //  Overridden methods
