         _layer = value;
         
         if (_layer)
+        {
             _layer.addEventListener("layerPropertyChange", layer_PropertyChange, false, 0, true);
+            _computedAlpha = _alpha * _layer.computedAlpha;
+            _computedVisibility = _visible && _layer.computedVisibility;
+            alphaChanged = true;
+            visibleChanged = true;
+            invalidateProperties();
+        }
     }
         
     //----------------------------------

                }
                break;
            }
            case "alpha":
            {
                var newAlpha:Number = Number(event.newValue) * _alpha;
                if (newAlpha != _computedAlpha)

    {
        switch (event.property)
        {
            case "computedVisibility":
            {
                var newValue:Boolean = (event.newValue && _visible);
                
