                 position.z = transitionValues.translationZ;
                 if (isNaN(position.x) || isNaN(position.y) || isNaN(position.z))
                 {
-                    var xformPosition:Vector3D = new Vector3D();
-                    var postLayoutPosition:Vector3D = new Vector3D();
                     target.transformPointToParent(xformCenter,
                         xformPosition, postLayoutPosition);
+                    currentXFormPositionComputed = true;
                     if (isNaN(position.x))
                         position.x = xformPosition.x;
                     if (isNaN(position.y))

            (!(value is Number) && value !== null));
    }

    /**
     * @private
     * 

            _scaleZ.property = "scaleZ";
        }
    }


    //----------------------------------
    //  postLayoutTranslationX
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutTranslationX property
     */
    private var _postLayoutTranslationX:MotionPath;
    /**
     * The MotionPath describing the change in <code>x</code> during the effect
     */
    public function get postLayoutTranslationX():MotionPath
    {
        return _postLayoutTranslationX;
    }
    public function set postLayoutTranslationX(value:MotionPath):void
    {
        _postLayoutTranslationX = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutTranslationX.property = "postLayoutTranslationX";
        }
    }
    
    //----------------------------------
    //  postLayoutTranslationY
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutTranslationY property
     */
    private var _postLayoutTranslationY:MotionPath;
    /**
     * The MotionPath describing the change in <code>y</code> during the effect
     */
    public function get postLayoutTranslationY():MotionPath
    {
        return _postLayoutTranslationY;
    }
    public function set postLayoutTranslationY(value:MotionPath):void
    {
        _postLayoutTranslationY = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutTranslationY.property = "postLayoutTranslationY";
        }
    }
    
    //----------------------------------
    //  postLayoutTranslationX
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutTranslationZ property
     */
    private var _postLayoutTranslationZ:MotionPath;
    /**
     * The MotionPath describing the change in <code>z</code> during the effect
     */
    public function get postLayoutTranslationZ():MotionPath
    {
        return _postLayoutTranslationZ;
    }
    public function set postLayoutTranslationZ(value:MotionPath):void
    {
        _postLayoutTranslationZ = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutTranslationZ.property = "postLayoutTranslationZ";
        }
    }
    
    //----------------------------------
    //  postLayoutRotationX
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutRotationX property
     */
    private var _postLayoutRotationX:MotionPath;
    /**
     * The MotionPath describing the change in postLayoutRotation around the x
     * axis during the effect
     */
    public function get postLayoutRotationX():MotionPath
    {
        return _postLayoutRotationX;
    }
    public function set postLayoutRotationX(value:MotionPath):void
    {
        _postLayoutRotationX = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutRotationX.property = "postLayoutRotationX";
        }
    }
    
    //----------------------------------
    //  postLayoutRotationY
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutRotationY property
     */
    private var _postLayoutRotationY:MotionPath;
    /**
     * The MotionPath describing the change in postLayoutRotation around the y
     * axis during the effect
     */
    public function get postLayoutRotationY():MotionPath
    {
        return _postLayoutRotationY;
    }
    public function set postLayoutRotationY(value:MotionPath):void
    {
        _postLayoutRotationY = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutRotationY.property = "postLayoutRotationY";
        }
    }
    
    //----------------------------------
    //  postLayoutRotationZ
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutRotationZ property
     */
    private var _postLayoutRotationZ:MotionPath;
    /**
     * The MotionPath describing the change in postLayoutRotation around the z
     * axis during the effect
     */
    public function get postLayoutRotationZ():MotionPath
    {
        return _postLayoutRotationZ;
    }
    public function set postLayoutRotationZ(value:MotionPath):void
    {
        _postLayoutRotationZ = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutRotationZ.property = "postLayoutRotationZ";
        }
    }
    
    //----------------------------------
    //  postLayoutScaleX
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutScaleX property
     */
    private var _postLayoutScaleX:MotionPath;
    /**
     * The MotionPath describing the change in postLayoutScale in the x direction
     * during the effect
     */
    public function get postLayoutScaleX():MotionPath
    {
        return _postLayoutScaleX;
    }
    public function set postLayoutScaleX(value:MotionPath):void
    {
        _postLayoutScaleX = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutScaleX.property = "postLayoutScaleX";
        }
    }
    
    //----------------------------------
    //  postLayoutScaleY
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutScaleY property
     */
    private var _postLayoutScaleY:MotionPath;
    /**
     * The MotionPath describing the change in postLayoutScale in the y direction
     * during the effect
     */
    public function get postLayoutScaleY():MotionPath
    {
        return _postLayoutScaleY;
    }
    public function set postLayoutScaleY(value:MotionPath):void
    {
        _postLayoutScaleY = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutScaleY.property = "postLayoutScaleY";
        }
    }
    
    //----------------------------------
    //  postLayoutScaleZ
    //----------------------------------

    /**
     * @private
     * Storage for the postLayoutScaleZ property
     */
    private var _postLayoutScaleZ:MotionPath;
    /**
     * The MotionPath describing the change in postLayoutScale in the z direction
     * during the effect
     */
    public function get postLayoutScaleZ():MotionPath
    {
        return _postLayoutScaleZ;
    }
    public function set postLayoutScaleZ(value:MotionPath):void
    {
        _postLayoutScaleZ = value;
        if (value)
        {
            postLayoutTransformPropertiesSet = true;
            _postLayoutScaleZ.property = "postLayoutScaleZ";
        }
    }



    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------
    
    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var applyLocalProjection:Boolean = false;
    
    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var removeLocalProjectionWhenComplete:Boolean = false;

    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var autoCenterProjection:Boolean = true;
    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var fieldOfView:Number;
    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var focalLength:Number;
    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var projectionX:Number = 0;
    /**
     *  Documentation is not currently available.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var projectionY:Number = 0;
            
    //--------------------------------------------------------------------------
    //
    // Methods
