Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
        });
    }
Esempio n. 3
0
    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();
        }
    }