//Play场景中窗口的控制  LoadingState 中Enter调用
        public void ChangeScenseToPlay(EScenesType front)
        {
            foreach (BaseWindow pWindow in mWidowDic.Values)
            {
                // 如果窗口类型是EST_Play,初始化窗口
                if (pWindow.GetScenseType() == EScenesType.EST_Play)
                {
                    pWindow.Init();
                    //如果是常驻窗口,预加载
                    if (pWindow.IsResident())
                    {
                        pWindow.PreLoad();
                    }
                }
                //否则 隐藏窗口并释放类对象
                else if ((pWindow.GetScenseType() == EScenesType.EST_Login) && (front == EScenesType.EST_Login))
                {
                    pWindow.Hide();
                    //释放窗口对象
                    pWindow.Realse();

                    if (pWindow.IsResident())
                    {
                        pWindow.DelayDestory();
                    }
                }
            }
        }
Beispiel #2
0
        public void ChangeScenseToPlay(EScenesType front)
        {
            foreach (BaseWindow pWindow in mWidowDic.Values)
            {
                if (pWindow.GetScenseType() == EScenesType.EST_Play)
                {
                    pWindow.Init();

                    if (pWindow.IsResident())
                    {
                        pWindow.PreLoad();
                    }
                }
                else if ((pWindow.GetScenseType() == EScenesType.EST_Login) && (front == EScenesType.EST_Login))
                {
                    pWindow.Hide();
                    pWindow.Release();

                    if (pWindow.IsResident())
                    {
                        pWindow.DelayDestory();
                    }
                }
            }
        }
    public void ChangeScenseToLogin(EScenesType front)
    {
        foreach (CBaseWindow pWindow in m_WindowDic.Values)
        {
            if (front == EScenesType.EST_None && pWindow.GetScenseType() == EScenesType.EST_None)
            {
                pWindow.Init();

                if (pWindow.IsResident())
                {
                    pWindow.PreLoad();
                }
            }

            if (pWindow.GetScenseType() == EScenesType.EST_Login)
            {
                pWindow.Init();

                if (pWindow.IsResident())
                {
                    pWindow.PreLoad();
                }
            }
            else if ((pWindow.GetScenseType() == EScenesType.EST_Play) && (front == EScenesType.EST_Play))
            {
                pWindow.Hide();
                pWindow.Realse();

                if (pWindow.IsResident())
                {
                    pWindow.DelayDestory();
                }
            }
        }
    }
Beispiel #4
0
 /// <summary>
 /// 隐藏该类型的所有Window
 /// </summary>
 /// <param name="front"></param>
 public void HideAllWindow(EScenesType front)
 {
     foreach (var pWindow in mWidowDic.Values)
     {
         if (front == pWindow.GetScenseType())
         {
             pWindow.Hide();
             //item.Value.Realse();
         }
     }
 }
Beispiel #5
0
 /// <summary>
 /// 隐藏该类型的所有Window
 /// </summary>
 /// <param name="front"></param>
 public void HideAllWindow(EScenesType front)
 {
     foreach (var item in mWidowDic)
     {
         if (front == item.Value.GetScenseType())
         {
             Debug.Log(item.Key);
             item.Value.Hide();
             //item.Value.Realse();
         }
     }
 }
 //Login场景中窗口的控制   1.在HolyTechGame中调用时参数传递的是 EScenesType.EST_None
 // 2.在LoadingState.enter调用
 public void ChangeScenseToMain(EScenesType front)
 {
     //遍历每一个窗口类。
     foreach (BaseWindow pWindow in mWidowDic.Values)
     {
         //如果Front的类型是EST_None并且遍历的这个窗口的类型是EST_None,
         if (front == EScenesType.EST_None && pWindow.GetScenseType() == EScenesType.EST_None)
         {
             pWindow.Init();//添加监听器(显示窗口的监听器)
             //如果是常驻窗口,那么就加载出来
             if (pWindow.IsResident())
             {
                 //创建窗体 但是没有激活,创建完成之后并初始化  creat() Initwidget()
                 pWindow.PreLoad();
             }
         }
         //如果当前窗口的类型是EST_Login,
         if (pWindow.GetScenseType() == EScenesType.EST_Login)
         {
             pWindow.Init();
             if (pWindow.IsResident())
             {
                 pWindow.PreLoad();
             }
         }
         //否则隐藏并释放
         else if ((pWindow.GetScenseType() == EScenesType.EST_Play) && (front == EScenesType.EST_Play))
         {
             pWindow.Hide();   //游戏事件注销  隐藏或销毁窗体
             pWindow.Realse(); //移除监听器(指的是窗口显示或隐藏的监听器)
             if (pWindow.IsResident())
             {
                 pWindow.DelayDestory();//销毁窗体
             }
         }
     }
 }
Beispiel #7
0
 public void SetFrontScenes(EScenesType front)
 {
     mFrontScenes = front;
 }