UIJumpMgr.lua 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. local UIJumpMgr = class("UIJumpMgr")
  2. -- 类型 uiId ui中对象
  3. local jumpTasks = {}
  4. local curTask
  5. local jumpingStatus = false
  6. local timeId
  7. function UIJumpMgr:ctor()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent("UIJumpMgr", UIEventNames.UI_FILLCONTENT_COMPELETED, function ()
  9. self:NextJump();
  10. end)
  11. end
  12. function UIJumpMgr:NextJump()
  13. if not self._curId then
  14. return;
  15. end
  16. self._curId = self._curId + 1;
  17. if not self._panelsData or not self._panelsData[self._curId] then
  18. self._panelsData = nil;
  19. self._curId = nil;
  20. return;
  21. end
  22. local _panelData = self._panelsData[self._curId];
  23. local _curPageData = ManagerContainer.CfgMgr:GetUIData(_panelData._panelId);
  24. local _backPageId = nil;
  25. if _curPageData and _curPageData.type == Enum.UIType.TotalWin then
  26. _backPageId = _panelData._backPageId;
  27. end
  28. if _panelData._panelId == Enum.UIPageName.UISeason then
  29. ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq()
  30. else
  31. local paramData = _panelData._param
  32. if _panelData._panelId == Enum.UIPageName.UIActivityChipRewardCom then
  33. local actData = ManagerContainer.DataMgr.ActsDataMgr:GetActivityItemById(_panelData._param)
  34. if not actData then
  35. return
  36. end
  37. paramData = {pageBg = actData.pageBg, actId = actData.actId}
  38. end
  39. if _panelData._panelId == Enum.UIPageName.UIRoleMain1 then
  40. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Role, 1)
  41. elseif _panelData._panelId == Enum.UIPageName.UIShopNew then
  42. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Battle)
  43. elseif _panelData._panelId == Enum.UIPageName.UIMainCity1 then
  44. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Town)
  45. elseif _panelData._panelId == Enum.UIPageName.UIBag then
  46. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Pub)
  47. elseif _panelData._panelId == Enum.UIPageName.UIBattle then
  48. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Adventure)
  49. elseif _panelData._panelId == Enum.UIPageName.UISkillSettings then
  50. ManagerContainer.LuaUIMgr:Open(_panelData._panelId, {paramData}, _backPageId);
  51. else
  52. ManagerContainer.LuaUIMgr:Open(_panelData._panelId, paramData, _backPageId);
  53. end
  54. end
  55. end
  56. function UIJumpMgr:StartContinueUIJump()
  57. timeId = nil
  58. self:StartJump(curTask)
  59. end
  60. function UIJumpMgr:CreateJumpTaskById(id)
  61. --[[
  62. local data = ManagerContainer.CfgMgr:GetUIJumpData(id)
  63. self:CreateJumpTask(data)]]--
  64. end
  65. function UIJumpMgr:Destroy()
  66. ManagerContainer.LuaEventMgr:Unregister("UIJumpMgr")
  67. curTask = nil
  68. jumpTasks = nil
  69. jumpingStatus = false
  70. self._panelsData = nil
  71. self._curId = nil
  72. if timeId ~= nil then
  73. ManagerContainer.LuaTimerMgr:ResumeTimer(timeId)
  74. end
  75. if tolua.getpeer(self) ~= nil then
  76. tolua.setpeer(self, nil)
  77. end
  78. end
  79. --_panelsData = {{_panelId = ***, _param = {}, _backPageId = **}};打开的界面的id,打开界面需要传的参数,打开的界面关闭的时候要返回的界面的id
  80. function UIJumpMgr:CreateJumpTask(_mainPanelId, _panelsData)
  81. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UI_CLOSE_TASK_PAGE);
  82. self._panelsData = _panelsData;
  83. self._curId = 0;
  84. local _isOpened = ManagerContainer.LuaUIMgr:GetPage(_mainPanelId)
  85. if _isOpened and _isOpened.IsShowed then
  86. self:NextJump();
  87. return true;
  88. end
  89. if _mainPanelId == Enum.UIPageName.UIRoleMain1 then
  90. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Role, 1)
  91. elseif _mainPanelId == Enum.UIPageName.UIPetRoot then
  92. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Battle)
  93. elseif _mainPanelId == Enum.UIPageName.UIMainCity1 then
  94. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Town)
  95. elseif _mainPanelId == Enum.UIPageName.UIBag then
  96. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Pub)
  97. elseif _mainPanelId == Enum.UIPageName.UIBattle then
  98. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Adventure)
  99. end
  100. end
  101. return UIJumpMgr