Пример #1
0
 private void SimpleOpenPage(Page page, string option)
 {
     RefreshCommon(currentPage);
     if (page.pageType == PageType.FULL_SCREEN)
     {
         //用回调来做吧
         //ManagerController.Instance.cameraTool.sceneCamera.enabled = page.showScene;
     }
     //FreshTipAndBarState(page);
     if (page.isOpen)
     {
         page.Reopen(option);
     }
     else
     {
         page.Open(option);
     }
     if (!activePage.Contains(page))
     {
         activePage.Add(page);
     }
 }
Пример #2
0
        public void OpenPage(string pageName, string option)
        {
            Debug.Log("Open page " + pageName + " option " + option);
            if (currentPage != null && currentPage.name == pageName)
            {
                currentPage.Reopen(option);
                return;
            }
            Page pageToOp = GetPage(pageName);

            if (pageToOp == null)
            {
                Debug.LogError("Cannot find the page " + pageName);
                return;
            }

            if (currentPage != null)
            {
                if (pageToOp.pageType == PageType.COVER)
                {
                    if (currentPage.pageType == PageType.FULL_SCREEN)
                    {
                        currentPage.OnCoverPageOpen();
                        string pao = currentPage.name + "?" + ((currentPage.saveToHistory) ? 1 : 0) + "?" + currentPage.GetOptString();
                        pageHostory.Add(pao);
                    }
                    else
                    {
                        currentPage.CorverdForceClose();
                        SimpleClosePage(currentPage);
                    }
                }
                else
                {
                    Page pageToClose;
                    if (currentPage.pageType == PageType.COVER)
                    {
                        currentPage.CorverdForceClose();
                        SimpleClosePage(currentPage);
                        string pn, options;
                        GetClosestPage(false, out pn, out options);
                        pageToClose = GetPage(pn);
                    }
                    else
                    {
                        pageToClose = currentPage;
                    }
                    if (pageToClose.saveToHistory)
                    {
                        string pao = pageToClose.name + "?" + 1 + "?" + pageToClose.GetOptString();
                        pageHostory.Add(pao);
                    }

                    pageToClose.OnForceClose();
                    SimpleClosePage(pageToClose);
                }
                //if (currentPage.pageType == PageType.FULL_SCREEN)
                //{
                //    string pao = currentPage.name + "?" + ((currentPage.saveToHistory) ? 1 : 0) + "?" + currentPage.GetOptString();
                //    pageHostory.Add(pao);
                //    if (pageToOp.pageType == PageType.FULL_SCREEN)
                //    {
                //        currentPage.OnForceClose();
                //        SimpleClosePage(currentPage);
                //        //for (int i = pageHostory.Count - 1; i >= 0; --i)
                //        //{
                //        //    string pn = pageHostory[i];
                //        //    int indexQ = pn.IndexOf('?');
                //        //    if (indexQ != -1)
                //        //    {
                //        //        pn = pn.Substring(0, indexQ);
                //        //    }
                //        //    if (pageDictonary.ContainsKey(pn))
                //        //    {
                //        //        var pageToClose = pageDictonary[pn];
                //        //        if (pageToClose.isOpen)
                //        //        {
                //        //            pageDictonary[pn].OnForceClose();
                //        //            SimpleClosePage(pageDictonary[pn]);
                //        //        }
                //        //        if (pageToClose.pageType == PageType.FULL_SCREEN)
                //        //        {
                //        //            break;
                //        //        }
                //        //    }
                //        //    //else
                //        //    //{
                //        //    //    break;
                //        //    //}
                //        //}
                //    }
                //    else
                //    {
                //        currentPage.OnCoverPageOpen();
                //    }
                //}
                //else
                //{
                //    SimpleClosePage(currentPage);
                //}
            }

            currentPage = pageToOp;
            SimpleOpenPage(pageToOp, option);
        }