public static void Close(WindowId id) { if (Opening(id)) { Debug.LogWarning("正在打开的窗口不能关闭,需要停止加载:" + id); return; } if (!Opened(id)) { return; } // 打开窗口时有隐藏其他窗口,关闭时要恢复其他窗口的显示 if (_hideWindowList.ContainsKey(id)) { WindowId _hideID = _hideWindowList[id]; HideWindow(_hideID, false); _hideWindowList.Remove(id); } WindowExtend window = _openedList[id]; GRoot.inst.HideWindowImmediately(window, true); _openedList.Remove(id); }
public static void Open(WindowId openId, Action openComplete = null, params object[] values) { if (Opened(openId) || Opening(openId)) { return; } if (!_datas.ContainsKey(openId)) { Debug.LogWarning("Window not regist:" + openId); return; } var data = _datas[openId]; WindowExtend window = (WindowExtend)Activator.CreateInstance(data.WindowType, values); _openingList[openId] = window; window.skinType = data.SkinType; window.windowId = data.Id; UITool.LoadUIPackage(data.PackageName, () => { OpenWindowHandler(data, openId, openComplete); }); }
private static void OpenWindowHandler(WindowData data, WindowId id, Action onComplete) { WindowExtend window = _openingList[id]; window.Show(); _openedList[id] = window; _openingList.Remove(id); if (onComplete != null) { onComplete(); } }