         
         invalidateProperties();
     }
-    
-    //----------------------------------
-    //  mouseOpaque
-    //----------------------------------
-    
-    /**
-     *  @private
-     *  Storage for the mouseOpaque property
-     */
-    private var _mouseOpaque:Boolean = true;
-    private var mouseEventReferenceCount:int;
-
-    [Inspectable(category="General")]
-    
-    /**
-     *  When set to true the mouseOpaque flag ensures that the entire bounds
-     *  of the Group are opaque to all mouse events such as clicks, rollOvers,
-     *  etc.
-     * 
-     *  @default true
-     *  
-     *  @langversion 4.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get mouseOpaque():Boolean
-    {
-        return _mouseOpaque;
-    }
-    
-    /**
-     *  @private
-     */
-    public function set mouseOpaque(value:Boolean):void
-    {
-        if (value == _mouseOpaque)
-            return;
-            
-        _mouseOpaque = value;
-        if (mouseEventReferenceCount != 0)
-            invalidateDisplayList();
-    }
-    
+        
     //----------------------------------
     //  mxmlContent
     //----------------------------------

        	   !isNaN(scaleGridRight) &&
        	   !isNaN(scaleGridBottom);
    }

    //--------------------------------------------------------------------------
    //
    //  Overridden methods: EventDispatcher
    //
    //--------------------------------------------------------------------------

    /**
     *  @private
     *  We render a transparent background fill by default when we have mouse
     *  listeners.
     */
    override public function addEventListener(type:String, listener:Function,
        useCapture:Boolean = false, priority:int = 0,
        useWeakReference:Boolean = false):void
    {
        super.addEventListener(type, listener, useCapture, priority, 
            useWeakReference);

        if (_mouseOpaque &&
            type == MouseEvent.CLICK ||
            type == MouseEvent.DOUBLE_CLICK ||
            type == MouseEvent.MOUSE_DOWN ||
            type == MouseEvent.MOUSE_MOVE ||
            type == MouseEvent.MOUSE_OVER ||
            type == MouseEvent.MOUSE_OUT ||
            type == MouseEvent.ROLL_OUT ||
            type == MouseEvent.ROLL_OVER ||
            type == MouseEvent.MOUSE_UP ||
            type == MouseEvent.MOUSE_WHEEL)
        {
            if (mouseEventReferenceCount++ == 0)
                invalidateDisplayList();
        }
    }

    /**
     *  @private
     *  We no longer render our default transparent background fill when we have 
     *  no mouse listeners.
     */
    override public function removeEventListener( type:String, listener:Function,
        useCapture:Boolean = false):void
    {
        super.removeEventListener(type, listener, useCapture);

        if (_mouseOpaque && 
            type == MouseEvent.CLICK ||
            type == MouseEvent.DOUBLE_CLICK ||
            type == MouseEvent.MOUSE_DOWN ||
            type == MouseEvent.MOUSE_MOVE ||
            type == MouseEvent.MOUSE_OVER ||
            type == MouseEvent.MOUSE_OUT ||
            type == MouseEvent.ROLL_OUT ||
            type == MouseEvent.ROLL_OVER ||
            type == MouseEvent.MOUSE_UP ||
            type == MouseEvent.MOUSE_WHEEL)
        {
            if (--mouseEventReferenceCount == 0)
                invalidateDisplayList();
        }
    }
    
    /**
     *  @private
     *  Automation requires a version of addEventListener that does not
     *  affect behavior of the underlying component.
     */  
    mx_internal function $addEventListener(
                            type:String, listener:Function,
                            useCapture:Boolean = false,
                            priority:int = 0,
                            useWeakReference:Boolean = false):void
    {
        super.addEventListener(type, listener, useCapture,
                               priority, useWeakReference);
    }

    /**
     *  @private
     *  Automation requires a version of removeEventListener that does not
     *  affect behavior of the underlying component.
     */  
    mx_internal function $removeEventListener(
                              type:String, listener:Function,
                              useCapture:Boolean = false):void
    {
        super.removeEventListener(type, listener, useCapture);
    }
      
    //--------------------------------------------------------------------------
    //


import flash.display.BlendMode;
import flash.display.DisplayObject;
import flash.geom.Rectangle;

import mx.core.IFontContextComponent;
