 
 		private function mouseScrollHandler(event : MouseEvent) : void {
 			if (!sliderEnabled) return;
-
-			value = snapValue(_value - event.delta * _snapInterval);
+			
+			var eventDelta : int = event.delta / Math.abs(event.delta);
+
+			var value : Number = snapValue(_value - (eventDelta * _mouseWheelDelta) * _snapInterval);
+
+			// always snap thumb position
+			_thumb.position = valueToThumbPosition(value);
+
+			if (value == _value) return;
+
+			_value = value;
+
+			dispatchChange();
 		}
 
 		private function thumbMoveHandler(event : Event) : void {

		private var _enabled : Boolean = true;
		private var _liveDragging : Boolean = true;
		private var _snapInterval : uint = 1;
		
		/* changeable properties or styles */
		private const UPDATE_PROPERTY_ACTIVATION : String = "activation";

			return _snapInterval;
		}
		
		public function set mouseWheelDelta(mouseWheelDelta : uint) : void {
			_mouseWheelDelta = mouseWheelDelta;
		}
		
		public function get mouseWheelDelta() : uint {
			return _mouseWheelDelta;
		}

		/*
		 * View life cycle
		 */
