PagePoster.lua.txt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. local PagePoster = {}
  2. local function PageChange(nCurrentPageIndex)
  3. local rootPanel = PagePoster.rootPanel
  4. local tagItem = rootPanel.transform:GetChild(nCurrentPageIndex - 1).gameObject
  5. local toggleGroupCom = tagItem.transform:GetComponent("Toggle")
  6. toggleGroupCom.isOn = true
  7. end
  8. local function RefreshPagePosterToggleItem()
  9. local rootPanel = PagePoster.rootPanel
  10. local tagItem = rootPanel.transform:Find("Toggle").gameObject
  11. local toggleGroupCom = tagItem.transform:GetComponent("Toggle")
  12. local tPageInfo = GetCache("PAGE_INFO")
  13. local nImgListCount = #tPageInfo.tImgPath
  14. for i = 1, nImgListCount - 1, 1 do
  15. CS.UnityEngine.GameObject.Instantiate(tagItem, rootPanel.transform)
  16. end
  17. toggleGroupCom.isOn = true
  18. end
  19. local function InitPagePosterUI()
  20. local rootPanel = PagePoster.rootPanel
  21. local tagItem = rootPanel.transform:Find("Toggle").gameObject
  22. local toggleGroupCom = rootPanel.transform:GetComponent("ToggleGroup")
  23. local tagItemToggleCom = tagItem.transform:GetComponent("Toggle")
  24. local tPagePosterTagInfo = GetCache("PAGE_POSTER_TAG_INFO")
  25. local texture2DTarget = LoadResource(tPagePosterTagInfo.szTarget)
  26. local texture2DNoramal = LoadResource(tPagePosterTagInfo.szNoramal)
  27. local targetSprite = CS.UnityEngine.Sprite.Create(texture2DTarget, CS.UnityEngine.Rect(0,0,texture2DTarget.width, texture2DTarget.height), CS.UnityEngine.Vector2.zero)
  28. local normalSprite = CS.UnityEngine.Sprite.Create(texture2DNoramal, CS.UnityEngine.Rect(0,0,texture2DNoramal.width, texture2DNoramal.height), CS.UnityEngine.Vector2.zero)
  29. tagItemToggleCom.group = toggleGroupCom
  30. tagItemToggleCom.interactable = false
  31. tagItemToggleCom.graphic.sprite = targetSprite
  32. tagItemToggleCom.targetGraphic.sprite = normalSprite
  33. end
  34. local function RefreshUI()
  35. InitPagePosterUI()
  36. RefreshPagePosterToggleItem()
  37. end
  38. local function RegisterEvent()
  39. local eventManager = require('Base/ZEventDispatchCenter.lua')
  40. eventManager:RegisterEvent(eventManager.EventType.COMMON_UI_PAGE_CHANGE, PageChange)
  41. end
  42. local function UnregisterEvent()
  43. local eventManager = require('Base/ZEventDispatchCenter.lua')
  44. eventManager:UnregisterEvent(eventManager.EventType.COMMON_UI_PAGE_CHANGE, PageChange)
  45. end
  46. function PagePoster.Awake(luaRoot)
  47. PagePoster.luaRoot = luaRoot
  48. local canvas = CS.UnityEngine.GameObject.Find('Canvas')
  49. PagePoster._rootCanvas = canvas
  50. PagePoster.rootPanel = luaRoot
  51. end
  52. function PagePoster.Init()
  53. RefreshUI()
  54. RegisterEvent()
  55. end
  56. function PagePoster.UnInit()
  57. UnregisterEvent()
  58. end
  59. return PagePoster