 import spark.transitions.SlideViewTransition;
 import spark.transitions.ViewTransitionBase;
 import spark.transitions.ViewTransitionDirection;
+import spark.transitions.supportClasses.ViewTransitionUtil;
 
 use namespace mx_internal;
 

        if (pendingViewDescriptor)
        {
            pendingView = pendingViewDescriptor.instance;
            pendingView.visible = true;
            pendingView.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, 
                            view_propertyChangeHandler);
        }

            activeTransition.startView = currentView;
            activeTransition.endView = pendingView;
            activeTransition.navigator = this;
            activeTransition.preInit();
            
            ViewTransitionUtil.notifyTransitionPreparation();
        }
        
        if (ViewTransitionUtil.suspendCount > 0)
        {
            ViewTransitionUtil.instance.addEventListener("ready", completeTransitionPreparations);
        }
        else
        {
            completeTransitionPreparations();
        }
    }
    
    private function completeTransitionPreparations(event:Event = null):void
    {
        if (event)
            event.target.removeEventListener("ready", completeTransitionPreparations);
        
        var pendingView:View;
        if (pendingViewDescriptor)
        {
            pendingView = pendingViewDescriptor.instance;
            pendingView.visible = true;
        }
        
        // Give the transition a chance to prepare before the view updates
        if (activeTransition)
            activeTransition.captureStartValues();

        // This event is dispatched here to allow developers to incorporate
        // length specific changes into the view navigator transitions
