     private var bgImg:DisplayObject;
     
     private var changeFXGSkin:Boolean = false;
+    
     private var borderClass:Class;
-    
-    private static var matrix:Matrix = new Matrix();
-    
-    // Used for gradient background
-    private static const alphas:Array = [1, 1, 1];
-    private static const ratios:Array = [0, 127.5, 255];
     
     //--------------------------------------------------------------------------
     //

        positionPart(bgImg, 0, 0);
    }
    
    /**
     *  Draws the background of the skin. Override this function to change the background. 
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 2.5 
     *  @productversion Flex 4.5
     */ 
    protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
    {
        var colors:Array = [];
        
        graphics.clear();
        
        // Draw the gradient background
        matrix.createGradientBox(unscaledWidth - 1, unscaledHeight - 1, Math.PI / 2, 0, 0);
        var chromeColor:uint = getStyle("chromeColor");
        colors[0] = ColorUtil.adjustBrightness2(chromeColor, 20);
        colors[1] = chromeColor;
        colors[2] = ColorUtil.adjustBrightness2(chromeColor, -20);
        
        graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix);
        
        // Draw the background rectangle within the border, so the corners of the rect don't 
        // spill over into the rounded corners of the Button
        graphics.drawRect(1, 1, unscaledWidth - 1, unscaledHeight - 1);
        graphics.endFill();
    }
    
    /**

    
import flash.display.DisplayObject;
import flash.display.GradientType;
import flash.display.Graphics;
import flash.geom.Matrix;

import mx.core.mx_internal;
