public void NavTo(string ScreenName) { if (navTarget != null) { return; } if (current != null && current.name == ScreenName) { return; } foreach (var s in screens) { if (s.name == ScreenName) { navTarget = s; s.BeginInit(); continue; } if (navTarget != null) { s.BeginExit(); } } if (navTarget == null) { navTarget = new ScreenProxy(ScreenName, this); navTarget.BeginInit(); screens.Add(navTarget); } }
public void Update(float delta) { string release = null; foreach (var m in models) { m.Value.Update(delta); if (m.Value.inited) { } if (m.Value.exited && release != null) { release = m.Key; } } if (release != null) { models.Remove(release); } //刷新所有屏幕状态 ScreenProxy remove = null; foreach (var p in screens) { if (p.exited) { remove = p; } p.Update(); } if (remove != null) { screens.Remove(remove); } //刷新当前Screen if (current != null) { current.Update(delta); } //是否要导航 if (navTarget != null) { if (navTarget.inited) { current = navTarget.screen; } } }