private void PerformAsyncLoad() { mNextScreenToLoadAsync = (Screen)Activator.CreateInstance(asyncScreenTypeToLoad, new object[0]); // Don't add it to the manager! mNextScreenToLoadAsync.Initialize(addToManagers: false); AsyncLoadingState = AsyncLoadingState.Done; }
private static Screen LoadScreen(string screen, Layer layerToLoadScreenOn, bool addToManagers, bool makeCurrentScreen) { mNextScreenLayer = layerToLoadScreenOn; Screen newScreen = null; Type typeOfScreen = MainAssembly.GetType(screen); if (typeOfScreen == null) { throw new System.ArgumentException("There is no " + screen + " class defined in your project or linked assemblies."); } if (screen != null && screen != "") { #if XBOX360 newScreen = (Screen)Activator.CreateInstance(typeOfScreen); #else newScreen = (Screen)Activator.CreateInstance(typeOfScreen, new object[0]); #endif } if (newScreen != null) { FlatRedBall.Input.InputManager.CurrentFrameInputSuspended = true; if (addToManagers) { // We do this so that new Screens are the CurrentScreen in Activity. // This is useful in custom logic. if (makeCurrentScreen) { mCurrentScreen = newScreen; } newScreen.Initialize(addToManagers); newScreen.ApplyRestartVariables(); } mSuppressStatePush = false; nextCallback?.Invoke(newScreen); nextCallback = null; if (addToManagers) { newScreen.Activity(true); newScreen.ActivityCallCount++; } } return(newScreen); }
private void PerformAsyncLoad() { mNextScreenToLoadAsync = (Screen)Activator.CreateInstance(asyncScreenTypeToLoad, new object[0]); // Don't add it to the manager! mNextScreenToLoadAsync.Initialize(addToManagers:false); AsyncLoadingState = AsyncLoadingState.Done; }