local Page = {} local nCurrentPageIndex = 1 local function GetNextIndex() local tPageInfo = GetCache("PAGE_INFO") local nImgListCount = #tPageInfo.tImgPath local nNextPageIndex = nCurrentPageIndex + 1 if nNextPageIndex > nImgListCount then nNextPageIndex = 1 end return nNextPageIndex end local function GetPreIndex() local tPageInfo = GetCache("PAGE_INFO") local nImgListCount = #tPageInfo.tImgPath local nPrePageIndex = nCurrentPageIndex - 1 if nPrePageIndex < 1 then nPrePageIndex = nImgListCount end return nPrePageIndex end local function ChangeCurrentIndexToNext() local tPageInfo = GetCache("PAGE_INFO") local nImgListCount = #tPageInfo.tImgPath nCurrentPageIndex = nCurrentPageIndex + 1 if nCurrentPageIndex > nImgListCount then nCurrentPageIndex = 1 end end local function ChangeCurrentIndexToPre() local tPageInfo = GetCache("PAGE_INFO") local nImgListCount = #tPageInfo.tImgPath nCurrentPageIndex = nCurrentPageIndex - 1 if nCurrentPageIndex < 1 then nCurrentPageIndex = nImgListCount end end local function RefreshPageUI() local tPageInfo = GetCache("PAGE_INFO") local szCurrentPath = tPageInfo.tImgPath[nCurrentPageIndex] local nNextIndex = GetNextIndex() local szNextPath = tPageInfo.tImgPath[nNextIndex] local eventManager = require('Base/ZEventDispatchCenter.lua') eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_REFRESH_UI, szCurrentPath, szNextPath, tPageInfo.szImgBG) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG, tPageInfo.szShadowLeft, tPageInfo.nShadowWidth) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE, tPageInfo.leftEffectType) end local function PageToPre() local tPageInfo = GetCache("PAGE_INFO") local szCurrentPath = tPageInfo.tImgPath[nCurrentPageIndex] local nNextIndex = GetPreIndex() local szNextPath = tPageInfo.tImgPath[nNextIndex] ChangeCurrentIndexToPre() local eventManager = require('Base/ZEventDispatchCenter.lua') eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_REFRESH_UI, szCurrentPath, szNextPath, tPageInfo.szImgBG) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG, tPageInfo.szShadowRight) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE, tPageInfo.rightEffectType) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_EFFECT, tPageInfo.nEffectTime) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_CHANGE, nCurrentPageIndex) end local function PageToNext() local tPageInfo = GetCache("PAGE_INFO") local szCurrentPath = tPageInfo.tImgPath[nCurrentPageIndex] local nNextIndex = GetNextIndex() local szNextPath = tPageInfo.tImgPath[nNextIndex] ChangeCurrentIndexToNext() local eventManager = require('Base/ZEventDispatchCenter.lua') eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_REFRESH_UI, szCurrentPath, szNextPath, tPageInfo.szImgBG) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG, tPageInfo.szShadowLeft) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE, tPageInfo.leftEffectType) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_MODULE_EFFECT, tPageInfo.nEffectTime) eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_CHANGE, nCurrentPageIndex) end local function InitPageUI() local rootPanel = Page.rootPanel local szPageScript = "CommonUtils/Page/PageModule.lua" local uiHelper = require('Base/UIHelper.lua') uiHelper:AddScript(rootPanel, szPageScript) require(szPageScript).Init() RefreshPageUI() end local function RefreshUI() InitPageUI() end local function RegisterEvent() local eventManager = require('Base/ZEventDispatchCenter.lua') eventManager:RegisterEvent(eventManager.EventType.COMMON_UI_PAGE_PRE, PageToPre) eventManager:RegisterEvent(eventManager.EventType.COMMON_UI_PAGE_NEXT, PageToNext) end local function UnregisterEvent() local eventManager = require('Base/ZEventDispatchCenter.lua') eventManager:UnregisterEvent(eventManager.EventType.COMMON_UI_PAGE_NEXT, PageToNext) eventManager:UnregisterEvent(eventManager.EventType.COMMON_UI_PAGE_PRE, PageToPre) end local function UnInitPage() require("CommonUtils/Page/PageModule.lua").UnInit() end local function UnInitData() nCurrentPageIndex = 1 end function Page.Awake(luaRoot) Page.luaRoot = luaRoot local canvas = CS.UnityEngine.GameObject.Find('Canvas') Page._rootCanvas = canvas Page.rootPanel = luaRoot end function Page.Init() RefreshUI() RegisterEvent() end function Page.UnInit() UnInitPage() UnInitData() UnregisterEvent() end return Page