      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    override public function step(increase:Boolean = true):void
-    {
-        if (!viewport)
-            super.step(increase);
-        else
-            updateViewportVSP((increase) ? ScrollUnit.DOWN : ScrollUnit.UP);
-    }
+     override public function step(increase:Boolean = true):void
+    {
+        var oldStepSize:Number;
+        if (viewport)
+        {
+            // Want to use ScrollBar's step() implementation to get the same
+            // animated behavior for scrollbars with and without viewports.
+            // For now, just change pageSize temporarily and call the superclass
+            // implementation.
+            oldStepSize = stepSize;
+            stepSize = Math.abs(viewport.getVerticalScrollPositionDelta(
+                (increase) ? ScrollUnit.DOWN : ScrollUnit.UP));
+        }
+        super.step(increase);
+        if (viewport)
+            stepSize = oldStepSize;
+    } 
+    
     
     /**
      *  @private

    *  @playerversion AIR 1.5
    *  @productversion Flex 4
    */
    override public function page(increase:Boolean = true):void
    {
        if (!viewport)
            super.page(increase);
        else
            updateViewportVSP((increase) ? ScrollUnit.PAGE_DOWN : ScrollUnit.PAGE_UP);
    }
    
    /**


package spark.components
{
import mx.core.ILayoutElement;
import mx.events.PropertyChangeEvent;
import mx.events.ResizeEvent;

import spark.components.supportClasses.ScrollBar;
import spark.core.IViewport;
import spark.core.ScrollUnit;

[IconFile("VScrollBar.png")]

