public override void Update(GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen) { base.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen); if (!initialized) { if (initialTime <= 0) { toggleFocus(MainContainer, true); toggleMoveSpeed(MainContainer, true); toggletScaleSpeed(MainContainer, true); initialized = true; } else { initialTime -= gameTime.ElapsedGameTime.Milliseconds; } } if (ParentScreen != null && HideParent) { if (IsExiting && ParentScreen.IsHidden) { ParentScreen.show(); } if (!IsExiting && !ParentScreen.IsHidden) { ParentScreen.hide(); } } // updates parent screen while its fading off // (or if UpdateParent is true) if (ParentScreen != null && !IsExiting && (UpdateParent || ParentScreen.IsFadingOff)) { ParentScreen.Update(gameTime, false, true); } // update IsFadingOff property if (isFadingOff) { if (fadeOffTime > TransitionOffTime.Milliseconds * 2) { isFadingOff = false; } else { fadeOffTime += gameTime.ElapsedGameTime.Milliseconds; } } }