     //  Variables
     //
     //--------------------------------------------------------------------------
+    
+    /**
+     *  @private
+     */
+    private var currentViewProps:Object;
+    
+    /**
+     *  @private
+     */
+    private var nextViewProps:Object;
+	
+	/**
+	 *  @private
+	 */
+	private var transitionGroup:Group;
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+    
+    //---------------------------------
+    // direction
+    //---------------------------------
+    
+    private var _direction:String = ViewTransitionDirection.LEFT;
+    
+    /**
+     *  Specifies the direction of slide transition.
+     *
+     *  @default ViewTransitionDirection.LEFT
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get direction():String
+    {
+        return _direction;
+    }
     
     /**
      *  @private
      */ 
-    private var parentNavigator:ViewNavigatorBase;
+    public function set direction(value:String):void
+    {
+        _direction = value;
+    }
+    
+    //---------------------------------
+    // mode
+    //---------------------------------
+    
+    private var _mode:String = SlideViewTransitionMode.PUSH;
+    
+    /**
+     *  Specifies the type of slide transition to perform.
+     *
+     *  @default SlideViewTransitionMode.PUSH
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get mode():String
+    {
+        return _mode;
+    }
     
     /**
      *  @private
-     */
-    private var targetNavigator:ViewNavigatorBase;
-    
-    /**
-     *  @private
-     */
-    private var actionBar:ActionBar;
-    
-    /**
-     *  @private
-     */
-    private var cachedNavigator:Image;
-    
-    /**
-     *  @private
-     */
-    private var cachedActionBar:Image;
-    
-    /**
-     *  @private
-     */
-    private var cachedActionGroup:Image;
-    
-    /**
-     *  @private
-     */
-    private var cachedTitleGroup:Image;
-    
-    /**
-     *  @private
-     */
-    private var cachedNavigationGroup:Image;
-    
-    /**
-     *  @private
-     */
-    private var currentViewProps:Object;
-    
-    /**
-     *  @private
-     */
-    private var nextViewProps:Object;
-    
-    /**
-     *  @private
-     */
-    private var explicitContentGroupIncludeInLayout:Boolean;
-    
-    /**
-     *  @private
-     */
-    private var explicitIncludeInLayout:Boolean;
-    
-    /**
-     *  @private
-     */
-    private var fullScreenAnimation:Boolean;
-    
-    //--------------------------------------------------------------------------
-    //
-    //  Properties
-    //
-    //--------------------------------------------------------------------------
-    
-    [Inspectable(category="General", enumeration="left,right", defaultValue="left")]
-    /**
-     *  The direction of the slide animation.  Can be either "left" or "right".
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public var direction:String = SLIDE_LEFT;
+     */ 
+    public function set mode(value:String):void
+    {
+        _mode = value;
+    }
     
     //--------------------------------------------------------------------------
     //

//
////////////////////////////////////////////////////////////////////////////////

package spark.effects
{
import flash.display.BitmapData;
import flash.display.DisplayObject;

import mx.core.IVisualElementContainer;
import mx.core.UIComponent;
import mx.core.mx_internal;
import mx.effects.IEffect;
import mx.effects.Parallel;
import mx.events.EffectEvent;

import spark.components.ActionBar;
import spark.components.Group;
import spark.components.Image;
import spark.components.TabbedViewNavigator;
import spark.components.ViewNavigator;
import spark.components.supportClasses.ButtonBarBase;
import spark.components.supportClasses.ViewNavigatorBase;
import spark.effects.animation.MotionPath;
import spark.effects.animation.SimpleMotionPath;
import spark.effects.easing.Sine;

use namespace mx_internal;

/**
 * 
 */
public class SlideViewTransition extends ViewTransition
{
    //--------------------------------------------------------------------------
    //
    //  Constants
    //
    //--------------------------------------------------------------------------
    
    /**
     *  Slide the views to the left.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public static const SLIDE_LEFT:String = "left";

    /**
     *  Slide the views to the right.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public static const SLIDE_RIGHT:String = "right";
    
    //--------------------------------------------------------------------------
    //
    //  Constructor

    //--------------------------------------------------------------------------
    
    /**
     *  @inheritDoc
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
