      */
     public function begin(target:Graphics, rc:Rectangle):void
     {
-        matrix.createGradientBox(rc.width, rc.height, _rotation,
-                                 rc.left, rc.top);
+    	var w:Number = !isNaN(scaleX) ? scaleX : rc.width;
+    	var h:Number = !isNaN(scaleY) ? scaleY : rc.height;
+		var tx:Number = !isNaN(x) ? x : rc.width / 2;
+		var ty:Number = !isNaN(y) ? y : rc.height / 2;
+				
+		tx -= w / 2;
+		ty -= h / 2;		
+				
+        matrix.createGradientBox(w, h, 
+								!isNaN(mx_internal::_angle) ? 
+									mx_internal::_angle : mx_internal::rotationInRadians,
+								 tx, ty);
             
         target.beginGradientFill(GradientType.RADIAL, mx_internal::colors,
-                                 mx_internal::alphas, mx_internal::ratios,
-                                 matrix, null, null, focalPointRatio);      
+								 mx_internal::alphas, mx_internal::ratios,
+								 matrix, spreadMethod, interpolationMethod, focalPointRatio);      
     }
 
     /**

        }
    }
    
    //--------------------------------------------------------------------------
    //
    //  Methods

    public function RadialGradient()
    {
        super();
        matrix = new Matrix();
    }
        
    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------

    //----------------------------------
    //  focalPointRatio
