      */
     override public function set transform(value:flash.geom.Transform):void
     {
+    	var m:Matrix = value.matrix;
+        var m3:Matrix3D =  value.matrix3D;
+        var ct:ColorTransform = value.colorTransform;
+    	var pp:PerspectiveProjection = value.perspectiveProjection;
+    	
         setTransform(value);
-
-        assignTransformMatrices();
-        super.transform.colorTransform = value.colorTransform;
-        super.transform.perspectiveProjection = _transform.perspectiveProjection;
+		
+        if(m != null)
+            setLayoutMatrix(m.clone(), true /*triggerLayoutPass*/);
+        else if(m3 != null)
+            setLayoutMatrix3D(m3.clone(), true /*triggerLayoutPass*/);
+
+        super.transform.colorTransform = ct;
+        super.transform.perspectiveProjection = pp;
         if (maintainProjectionCenter)
-            applyPerspectiveProjection();
-    }
-    
-    private function assignTransformMatrices():void
-    {
-        var m:Matrix = _transform.matrix;
-        var m3:Matrix3D =  _transform.matrix3D;
-        if(m != null)
-            setLayoutMatrix(m.clone(), true /*invalidateLayout*/);
-        else if(m3 != null)
-            setLayoutMatrix3D(m3.clone(), true /*invalidateLayout*/);
-    }
-
-    private function transformPropertyChangeHandler(event:PropertyChangeEvent):void
-    {
-        if (event.kind == PropertyChangeEventKind.UPDATE)
-        {
-            if (event.property == "matrix" || event.property == "matrix3D")
-            {
-                assignTransformMatrices();
-            }
-            else if (event.property == "perspectiveProjection")
-            {
-                super.transform.perspectiveProjection = _transform.perspectiveProjection;
-                if (maintainProjectionCenter)
-                    applyPerspectiveProjection();
-            }
-            else if (event.property == "colorTransform")
-            {
-                super.transform.colorTransform = _transform.colorTransform;
-            }
-        }
+            applyPerspectiveProjection(); 
+    }
+    
+    /**
+     * Documentation is not currently available
+     */
+    public function get $transform():flash.geom.Transform
+    {
+        return super.transform;
     }
     
     /**

import flash.display.Stage;
import flash.events.Event;
import flash.events.FocusEvent;
import flash.geom.Matrix;
import flash.geom.Matrix3D;
import flash.geom.PerspectiveProjection;

    
    private function setTransform(value:flash.geom.Transform):void
    {
        // Clean up the old transform
        var oldTransform:mx.geom.Transform = _transform as mx.geom.Transform;
        if (oldTransform)
        	oldTransform.target = null;

        var newTransform:mx.geom.Transform = value as mx.geom.Transform;

        if (newTransform)
        	newTransform.target = this;

        _transform = value;
    }
