      */
     protected function thumb_mouseDownHandler(event:MouseEvent):void
     {
-        addSystemHandlers(MouseEvent.MOUSE_MOVE, system_mouseMoveHandler, 
-                stage_mouseMoveHandler);
-        addSystemHandlers(MouseEvent.MOUSE_UP, system_mouseUpHandler, 
-                stage_mouseUpHandler);
-                            
-        // Record the location where this mouse-down event occurred; we will
-        // use this in later drag operations to determine how much to move the
-        // thumb button
-        var pt:Point = new Point(event.stageX, event.stageY);
-        var pt2:Point = track.globalToLocal(pt);
-        pt = thumb.globalToLocal(pt);
-        _clickOffset = pt;
-        
+        addSystemHandlers(MouseEvent.MOUSE_MOVE, system_mouseMoveHandler, stage_mouseMoveHandler);
+        addSystemHandlers(MouseEvent.MOUSE_UP, system_mouseUpHandler, stage_mouseUpHandler);
+        clickOffset = thumb.globalToLocal(new Point(event.stageX, event.stageY));
         dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_PRESS));
     }
     

     */
    protected function system_mouseUpHandler(event:MouseEvent):void
    {
        removeSystemHandlers(MouseEvent.MOUSE_MOVE, system_mouseMoveHandler, 
                stage_mouseMoveHandler);
        removeSystemHandlers(MouseEvent.MOUSE_UP, system_mouseUpHandler, 
                stage_mouseUpHandler);
                
        dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_RELEASE));
    }


    
    //--------------------------------------------------------------------------
    //
    // Methods
    //
    //--------------------------------------------------------------------------

    /**
     *  Convert a track relative x,y pixel location into a value between 
     *  minimum and maximum inclusive.  
     * 
     *  <p>TrackBase subclasses must override this method and perform conversions
     *  that take their own geometry into account.
     * 
     *  For example a vertical slider might compute a value like this:
     *  <pre>
     *  return (y / track.height) * (maximum - minimum);
     *  </pre>
     *  </p>
     * 
     *  <p>By default this method just returns <code>minimum</code>.</p>
     * 
     *  @param x The x coordinate of the location relative to the track's origin.
     *  @param y The y coordinate of the location relative to the track's origin.
     *  @return A value between minimum and maximum, inclusive.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    protected function pointToValue(x:Number, y:Number):Number
    {
        return minimum;
    }
        

    /**
     *  @private
     */
    override public function changeValueByStep(increase:Boolean = true):void
    {
        var prevValue:Number = this.value;

        super.changeValueByStep(increase);
        
        if (value != prevValue)
            dispatchEvent(new Event(Event.CHANGE));
