 		return (_layoutFeatures != null)? _layoutFeatures.offsets:null;
 	}
 
+
+	/**
+	 * @private
+	 */
+	private var _maintainProjectionCenter:Boolean = false;
+	
+	/**
+	 * Documentation is not currently available
+	 */
+	public function set maintainProjectionCenter(value:Boolean):void
+	{
+		_maintainProjectionCenter = value;
+		if(value && super.transform.perspectiveProjection == null)
+		{
+			super.transform.perspectiveProjection = new PerspectiveProjection();
+		}
+		invalidateDisplayList();
+	}
+	/**
+	 * @private
+	 */
+	public function get maintainProjectionCenter():Boolean
+	{
+		return _maintainProjectionCenter;
+	}
+
+	
 	/**
 	 * Documentation is not currently available.  the matrix of a component is the transform matrix used to calculate its layout
 	 * relative to its siblings. This matrix is modified by the values of the offset property to determine its final, computed matrix.

import flash.geom.Transform;
import mx.events.PropertyChangeEventKind;
import mx.geom.CompoundTransform;

use namespace mx_internal;


        {
         	applyComputedTransform();
        }
		
		if(_maintainProjectionCenter)
		{
			var pmatrix:PerspectiveProjection = super.transform.perspectiveProjection;
			if(pmatrix != null)
			{
				pmatrix.projectionCenter = new Point(unscaledWidth/2,unscaledHeight/2);
			}
		}
        if (invalidateDisplayListFlag)
        {
            // Check if our parent is the top level system manager
