             positionThumb(valueToPosition(value));
             tempTrackSize = trackSize;
         }
+    }
+    
+    /**
+     *  Handles the mouseWheel event when the component is in focus. The thumb is 
+     *  moved by the amount of the mouse event delta multiplied by the stepSize.  
+     */ 
+    protected function system_mouseWheelHandler(event:MouseEvent):void
+    {
+    	var newValue:Number = nearestValidValue(value + event.delta * stepSize, stepSize);
+        positionThumb(valueToPosition(newValue));
+        setValue(newValue);    	
+    }
+    
+    /**
+     *  @private
+     *  Handles the mouseWheel event when the component is in focus. The thumb is 
+     *  moved by the amount of the mouse event delta multiplied by the stepSize.  
+     */ 
+    protected function stage_mouseWheelHandler(event:MouseEvent):void
+    {
+    	if (event.target != stage)
+            return;
+
+        system_mouseWheelHandler(event);
+    	
     }
 
     //---------------------------------

{

import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Point;
import mx.components.FxButton;

/**

        var roundedValue:Number = nearestValidValue(newValue, stepSize);
        return roundedValue;
    }
    
    /**
     *  @private
     */ 
    override protected function focusInHandler(event:FocusEvent):void
    {
    	 addSystemHandlers(MouseEvent.MOUSE_WHEEL, system_mouseWheelHandler, stage_mouseWheelHandler);
    }
    
    /**
     *  @private
     */
    override protected function focusOutHandler(event:FocusEvent):void
    {
    	removeSystemHandlers(MouseEvent.MOUSE_WHEEL, system_mouseWheelHandler, stage_mouseWheelHandler);
    }

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