     private var bgImg:DisplayObject;
     
     private var changeFXGSkin:Boolean = false;
+    private var backgroundClass:Class;
     
     private static var matrix:Matrix = new Matrix();
     

        // The label and icon should be placed on top of the FXG skins
        super.updateDisplayList(unscaledWidth, unscaledHeight);
    }
    
    /**
     *  @private 
     */ 
    private function applyFXG():void 
    {
        if (currentState == null)
            return;
        
        if (bgImg != null)
            removeChild(bgImg);
        
        if (currentState == "down") 
            bgImg = new Button_bg_down();
        else if (currentState == "up" || currentState == "over")
            bgImg = new Button_bg_up();
        
        addChildAt(bgImg, 0);
    }
}
}
        // Size the FXG background   
        if (changeFXGSkin)
        {
            changeFXGSkin = false;
            
            if (bgImg)
                removeChild(bgImg);
            bgImg = new backgroundClass();
            addChildAt(bgImg, 0);
        }
        
        if (bgImg != null) 
