         {
             _alpha = value;
         
-            if (layer)
-                value = value * layer.computedAlpha; 
+            if (designLayer)
+                value = value * designLayer.effectiveAlpha; 
             
             $alpha = value;
 

     *  @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);
            $alpha = _alpha * _layer.computedAlpha;
            $visible = _visible && _layer.computedVisibility;
        }
    }
        

        if (!initialized)
            return;

        if (designLayer && !designLayer.effectiveVisibility) 
            value = false; 
        
        if ($visible == value)
