     //  Public variables
     //
     //--------------------------------------------------------------------------
-    
+
+    //----------------------------------
+    //  alpha
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the alpha property.
+     */
+    private var _alpha:Number = 1.0;
+    
+    /**
+     *  @private
+     */
+    override public function get alpha():Number
+    {
+        // Here we roundtrip alpha in the same manner as the 
+        // player (purposely introducing a rounding error).
+        return int(_alpha * 256.0) / 256.0;
+    }
+    
+    /**
+     *  @private
+     */
+    override public function set alpha(value:Number):void
+    { 
+        if (_alpha != value)
+        {
+            _alpha = value;
+            
+            if (layer)
+                value = value * layer.computedAlpha; 
+            
+            super.alpha = value;
+        }
+    }
+        
     //----------------------------------
     //  autoUpdateMeasuredSize
     //----------------------------------

import mx.core.mx_internal;
import mx.events.FlexEvent;
import mx.events.MoveEvent;
import mx.events.ResizeEvent;
import mx.events.StateChangeEvent;
import mx.geom.TransformOffsets;

            parentDocument.systemManager.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeCaptureHandler,
                                                 true, 0, true);
    }
    
    /**
     *  @private
     */
    protected function layer_PropertyChange(event:PropertyChangeEvent):void
    {
        switch (event.property)
        {
            case "visible":
            {
                var newValue:Boolean = (event.newValue && _visible);            
                if (newValue != super.visible)
                    super.visible = newValue;
                break;
            }
            case "alpha":
            {
                var newAlpha:Number = Number(event.newValue) * _alpha;
                if (newAlpha != super.alpha)
                    super.alpha = newAlpha;
                break;
            }
        }
    }
    
   // IAutomationObject Interface defenitions   
   private var _automationDelegate:IAutomationObject;

