Page.lua.txt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. local Page = {}
  2. local nCurrentPageIndex = 1
  3. local function GetNextIndex()
  4. local tPageInfo = GetCache("PAGE_INFO")
  5. local nImgListCount = #tPageInfo.tImgPath
  6. local nNextPageIndex = nCurrentPageIndex + 1
  7. if nNextPageIndex > nImgListCount then
  8. nNextPageIndex = 1
  9. end
  10. return nNextPageIndex
  11. end
  12. local function GetPreIndex()
  13. local tPageInfo = GetCache("PAGE_INFO")
  14. local nImgListCount = #tPageInfo.tImgPath
  15. local nPrePageIndex = nCurrentPageIndex - 1
  16. if nPrePageIndex < 1 then
  17. nPrePageIndex = nImgListCount
  18. end
  19. return nPrePageIndex
  20. end
  21. local function ChangeCurrentIndexToNext()
  22. local tPageInfo = GetCache("PAGE_INFO")
  23. local nImgListCount = #tPageInfo.tImgPath
  24. nCurrentPageIndex = nCurrentPageIndex + 1
  25. if nCurrentPageIndex > nImgListCount then
  26. nCurrentPageIndex = 1
  27. end
  28. end
  29. local function ChangeCurrentIndexToPre()
  30. local tPageInfo = GetCache("PAGE_INFO")
  31. local nImgListCount = #tPageInfo.tImgPath
  32. nCurrentPageIndex = nCurrentPageIndex - 1
  33. if nCurrentPageIndex < 1 then
  34. nCurrentPageIndex = nImgListCount
  35. end
  36. end
  37. local function RefreshPageUI()
  38. local tPageInfo = GetCache("PAGE_INFO")
  39. local szCurrentPath = tPageInfo.tImgPath[nCurrentPageIndex]
  40. local nNextIndex = GetNextIndex()
  41. local szNextPath = tPageInfo.tImgPath[nNextIndex]
  42. local eventManager = require('Base/ZEventDispatchCenter.lua')
  43. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_REFRESH_UI, szCurrentPath, szNextPath, tPageInfo.szImgBG)
  44. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG, tPageInfo.szShadowLeft, tPageInfo.nShadowWidth)
  45. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE, tPageInfo.leftEffectType)
  46. end
  47. local function PageToPre()
  48. local tPageInfo = GetCache("PAGE_INFO")
  49. local szCurrentPath = tPageInfo.tImgPath[nCurrentPageIndex]
  50. local nNextIndex = GetPreIndex()
  51. local szNextPath = tPageInfo.tImgPath[nNextIndex]
  52. ChangeCurrentIndexToPre()
  53. local eventManager = require('Base/ZEventDispatchCenter.lua')
  54. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_REFRESH_UI, szCurrentPath, szNextPath, tPageInfo.szImgBG)
  55. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG, tPageInfo.szShadowRight)
  56. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE, tPageInfo.rightEffectType)
  57. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_EFFECT, tPageInfo.nEffectTime)
  58. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_CHANGE, nCurrentPageIndex)
  59. end
  60. local function PageToNext()
  61. local tPageInfo = GetCache("PAGE_INFO")
  62. local szCurrentPath = tPageInfo.tImgPath[nCurrentPageIndex]
  63. local nNextIndex = GetNextIndex()
  64. local szNextPath = tPageInfo.tImgPath[nNextIndex]
  65. ChangeCurrentIndexToNext()
  66. local eventManager = require('Base/ZEventDispatchCenter.lua')
  67. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_REFRESH_UI, szCurrentPath, szNextPath, tPageInfo.szImgBG)
  68. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG, tPageInfo.szShadowLeft)
  69. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE, tPageInfo.leftEffectType)
  70. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_EFFECT, tPageInfo.nEffectTime)
  71. eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_CHANGE, nCurrentPageIndex)
  72. end
  73. local function InitPageUI()
  74. local rootPanel = Page.rootPanel
  75. local szPageScript = "CommonUtils/Page/PageModule.lua"
  76. local uiHelper = require('Base/UIHelper.lua')
  77. uiHelper:AddScript(rootPanel, szPageScript)
  78. require(szPageScript).Init()
  79. RefreshPageUI()
  80. end
  81. local function RefreshUI()
  82. InitPageUI()
  83. end
  84. local function RegisterEvent()
  85. local eventManager = require('Base/ZEventDispatchCenter.lua')
  86. eventManager:RegisterEvent(eventManager.EventType.COMMON_UI_PAGE_PRE, PageToPre)
  87. eventManager:RegisterEvent(eventManager.EventType.COMMON_UI_PAGE_NEXT, PageToNext)
  88. end
  89. local function UnregisterEvent()
  90. local eventManager = require('Base/ZEventDispatchCenter.lua')
  91. eventManager:UnregisterEvent(eventManager.EventType.COMMON_UI_PAGE_NEXT, PageToNext)
  92. eventManager:UnregisterEvent(eventManager.EventType.COMMON_UI_PAGE_PRE, PageToPre)
  93. end
  94. local function UnInitPage()
  95. require("CommonUtils/Page/PageModule.lua").UnInit()
  96. end
  97. local function UnInitData()
  98. nCurrentPageIndex = 1
  99. end
  100. function Page.Awake(luaRoot)
  101. Page.luaRoot = luaRoot
  102. local canvas = CS.UnityEngine.GameObject.Find('Canvas')
  103. Page._rootCanvas = canvas
  104. Page.rootPanel = luaRoot
  105. end
  106. function Page.Init()
  107. RefreshUI()
  108. RegisterEvent()
  109. end
  110. function Page.UnInit()
  111. UnInitPage()
  112. UnInitData()
  113. UnregisterEvent()
  114. end
  115. return Page