                 slideDuration != 0 && 
                 (maximum - minimum) != 0)
             {
+                dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
                 // Animate the shift-click operation
                 startAnimation(slideDuration * 
                     (Math.abs(value - newScrollValue) / (maximum - minimum)),
                     adjustedValue, deceleratingSineEaser);
-				animatingSinglePage = true;
+                animatingOnce = true;
             }
             else
             {


        // Make sure we finish any running page animation before starting
        // a new one.
        if (animatingSinglePage)
		{
			animationEndHandler(animator);
            animator.stop();
		}
        // Cache original event location for use on later repeating events
        trackPosition = track.globalToLocal(new Point(event.stageX, event.stageY));
		
		dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
		
        // If the user shift-clicks on the track, then offset the event coordinates so 
        // that the thumb ends up centered under the mouse.
        if (event.shiftKey)

     * do a single changeValueByPage() operation. This is used to end that operation properly
     * if another operation interrupts it.
     */ 
    private var animatingOnce:Boolean;
    
    /**
     * @private
