 {
     
 import flash.display.BlendMode;
-import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
 import flash.events.Event;
 

     *  Property bag used to save any start view properties that 
     *  are then restored after the transition is complete.
     */
    private var startViewProps:Object = {};
    
    /**
     *  @private
     *  Property bag used to save any end view properties that 
     *  are then restored after the transition is complete.
     */
    private var endViewProps:Object = {};
    
    /**
     *  @private

    override protected function createConsolidatedEffect():IEffect
    {        
        // If we have no cachedNavigator then there is not much we can do.
        if (!cachedNavigator && mode == ZoomViewTransitionMode.OUT)
            return null;
        
        // Add a group to contain our snapshot view of the original navigator.
        cachedNavigatorGroup = new Group();
        cachedNavigatorGroup.includeInLayout = false;
        cachedNavigatorGroup.addElement(cachedNavigator);
        cachedNavigator.includeInLayout = false;

        // Add our temporary transition group to our target navigator's parent
        // so we can make it and the original navigator siblings.
        if (mode == ZoomViewTransitionMode.OUT)
        {
            addComponentToContainer(cachedNavigatorGroup, DisplayObjectContainer(targetNavigator).parent as UIComponent);
            
            // We'll be zooming out our cachedNavigatorGroup.
            transitionGroup = cachedNavigatorGroup;
        }
        else
        {
            transitionGroup = new Group();
            transitionGroup.includeInLayout = false;
            addComponentToContainer(cachedNavigatorGroup, DisplayObjectContainer(targetNavigator).parent as UIComponent);
            
            // We'll be zooming in our snapshot of the new navigator. Host our 
            // snapshot and make sure it's rendered.
            cachedNavigatorGroup.addElement(transitionGroup);
            transitionGroup.addElement(targetShapshot);
            cachedNavigatorGroup.validateNow();
            
            // Hide our real navigator.
            endViewProps = {visible:targetNavigator.skin.visible}
            targetNavigator.skin.visible = false;
        }
        
        transitionGroup.validateNow();
        transitionGroup.x = transitionGroup.y = 0;

        // Initialize our target's transform center.
        transitionGroup.transformX = cachedNavigator.getLayoutBoundsWidth(true) / 2;
        transitionGroup.transformY = cachedNavigator.getLayoutBoundsHeight(true) / 2;
        
        // Ensure our alpha is initialized to 0 prior to the start
        // of our transition so that the view isn't displayed briefly
        // after validation.
        if (mode == ZoomViewTransitionMode.IN)
            transitionGroup.alpha = 0;
        
        // Set our blendMode to 'normal' for performance reasons.
        transitionGroup.blendMode = BlendMode.NORMAL;
        
        return createZoomEffect(transitionGroup);
    }
    
    /**
