         if (!initialized)
             return;
 
+        if (layer && !layer.computedVisibility) 
+            value = false; 
+        
         if ($visible == value)
             return;
 

            focusObject.visible = false;
    }

    //--------------------------------------------------------------------------
    //
    //  Event handlers: Validation

        super.filters = clonedFilters;
    }

    //----------------------------------
    //  layer
    //----------------------------------
    
    /**
     *  @private
     *  Storage for the layer property.
     */
    private var _layer:DesignLayer;
    
    [Inspectable (environment='none')]
    
    /**
     *  @copy mx.core.IVisualElement#layer
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get layer():DesignLayer
    {
        return _layer;
    }
    
    /**
     *  @private
     */
    public function set layer(value:DesignLayer):void
    {
        if (_layer)
            _layer.removeEventListener("layerPropertyChange", layer_PropertyChange, false);
        
        _layer = value;
        
        if (_layer)
            _layer.addEventListener("layerPropertyChange", layer_PropertyChange, false, 0, true);
    }
        
    //--------------------------------------------------------------------------
    //
    //  Properties: Display
    //
    //--------------------------------------------------------------------------

    //----------------------------------
    //  $alpha
    //----------------------------------
    
    /**
     *  @private
     *  This property allows access to the Player's native implementation
     *  of the 'alpha' property, which can be useful since components
     *  can override 'alpha' and thereby hide the native implementation.
     *  Note that this "base property" is final and cannot be overridden,
     *  so you can count on it to reflect what is happening at the player level.
     */
    mx_internal final function get $alpha():Number
    {
        return super.alpha;
    }
    
    /**
     *  @private
     */
    mx_internal final function set $alpha(value:Number):void
    {
        super.alpha = value;
    }
    
    //----------------------------------
    //  $parent
    //----------------------------------
