 import flash.geom.Point;
 import flash.geom.Vector3D;
 
-import mx.core.ILayoutElement;
+import mx.core.IUIComponent;
+import mx.core.UIComponent;
 import mx.core.mx_internal;
+import mx.effects.Effect;
+
+import spark.effects.Animate;
+import spark.effects.KeyFrame;
+import spark.effects.MotionPath;
 import spark.effects.animation.Animation;
-import mx.effects.Effect;
-import spark.effects.Animate;
 import spark.effects.easing.IEaser;
 import spark.effects.easing.Linear;
-
-import mx.core.UIComponent;
-
-import spark.effects.KeyFrame;
-import spark.effects.MotionPath;
 
 use namespace mx_internal;
 

            var parent:UIComponent = target.parent;
            
            if(parent != null)
            {
                    
                originalProjection = parent.$transform.perspectiveProjection;
                var p:PerspectiveProjection = new PerspectiveProjection();
                if(!isNaN(fieldOfView))

                if(!isNaN(focalLength))
                    p.focalLength = focalLength;
                
                var projectionPoint:Point;
                // Get the location in local coordinates and then get
                // that location in the parent's coordinate system
                if (autoCenterProjection)
                    projectionPoint = new Point(target.getLayoutBoundsWidth(false)/2,
                        target.getLayoutBoundsHeight(false)/2);
                else
                    projectionPoint = new Point(projectionX, projectionY);
                projectionPoint = target.localToGlobal(projectionPoint);
                p.projectionCenter = parent.globalToLocal(projectionPoint);
                 
                parent.$transform.perspectiveProjection = p;        
            }
        }       
