     {
         currentTimeDisplay.text = formatTimeValue(currentTime);
     } 
+        
+    /**
+     *  @private
+     *  Returns the screen bounds. 
+     *  If we are on the AIR Player, we need to work around AIR Player bug #2503351 
+     *  We check if the flash.display.Screen class is defined. If so, then 
+     *  we are running on the AIR Player and can access this API. 
+     */
+    mx_internal function getScreenBounds():Rectangle
+    {       
+        if (screenClass)
+        {
+            // Get the screen where the application resides
+            var nativeWindowBounds:Rectangle = stage["nativeWindow"]["bounds"];             
+            var currentScreen:Object = screenClass["getScreensForRectangle"](nativeWindowBounds)[0];
+          
+            // Return the bounds of that screen
+            return currentScreen["bounds"];
+        }
+        else
+        {
+            return new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight);
+        }
+    }
     
     //--------------------------------------------------------------------------
     //

            // check to make sure we can go into fullscreen mode
            if (!systemManager.getTopLevelRoot())
                return;
            
            fullScreen = true;
            

            // Resize the component to be the full screen of the stage.
            // Push the component at (0,0).  It should be on top of everything 
            // at this point because it was added as a popup
            setLayoutBoundsSize(screenBounds.width, screenBounds.height, true);
            // set the explicit width/height to make sure this value sticks regardless 
            // of any other code or layout passes.  Calling setLayoutBoundsSize() before hand
            // allows us to use postLayout width/height
