KLShapeShiftCardAwardPanel.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. ---@class KLShapeShiftCardAwardPanel:UIKmlLuaPanelBase
  2. ---@field view KLShapeShiftCardAwardPanelView
  3. local KLShapeShiftCardAwardPanel = class(UIKmlLuaPanelBase)
  4. local this = KLShapeShiftCardAwardPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. self.Awards = {}
  10. self.closeTime = 3
  11. GUI:DataListInitData(self.view.rewards_mid,
  12. function()
  13. return table.count(self.info)
  14. end,
  15. function(realIndex)
  16. return self:DataListItemGetFunc_1(realIndex)
  17. end,
  18. nil,
  19. function(realIndex, kmlcontrol)
  20. return self:DataListItemUpdateFunc(realIndex, kmlcontrol)
  21. end)
  22. GUI:DataListInitData(self.view.rewards_left,
  23. function()
  24. return table.count(self.info)
  25. end,
  26. function(realIndex)
  27. return self:DataListItemGetFunc_2(realIndex)
  28. end,
  29. nil,
  30. function(realIndex, kmlcontrol)
  31. return self:DataListItemUpdateFunc(realIndex, kmlcontrol)
  32. end)
  33. end
  34. ---创建或者刷新界面数据时调用
  35. function this:Refresh()
  36. if not self.info then
  37. self.info = {}
  38. end
  39. for _, v in pairs(self.args) do
  40. self.info[#self.info + 1] = v
  41. end
  42. if #self.info > 3 then
  43. GUI:setVisible(self.view.scrollview_left, true)
  44. GUI:setVisible(self.view.scrollview_mid, false)
  45. GUI:DataListUpdateData(self.view.rewards_left)
  46. self.itemBindRoot = self.view.rewards_left
  47. else
  48. GUI:setVisible(self.view.scrollview_left, false)
  49. GUI:setVisible(self.view.scrollview_mid, true)
  50. GUI:DataListUpdateData(self.view.rewards_mid)
  51. self.itemBindRoot = self.view.rewards_mid
  52. end
  53. --到达时间后关闭
  54. SL:ScheduleOnce(self.closeTime, function()
  55. self:ClosePanle()
  56. end)
  57. end
  58. function this:DataListItemGetFunc_1()
  59. local item = GUI:UIPanel_Open("dev/outui/ShapeShiftCard/Item/KLShapeShiftCard/KLShapeShiftCardItem", self.view.rewards_mid, self, { type = E_ShapeShiftCardFuncType.House }, true)
  60. local kmlCtrl = item.view.root
  61. self.Awards[kmlCtrl] = item
  62. return kmlCtrl
  63. end
  64. function this:DataListItemGetFunc_2()
  65. local item = GUI:UIPanel_Open("dev/outui/ShapeShiftCard/Item/KLShapeShiftCard/KLShapeShiftCardItem", self.view.rewards_left, self, { type = E_ShapeShiftCardFuncType.House }, true)
  66. local kmlCtrl = item.view.root
  67. self.Awards[kmlCtrl] = item
  68. return kmlCtrl
  69. end
  70. function this:DataListItemUpdateFunc(realIndex, kmlcontrol)
  71. local data = self.info[realIndex + 1]
  72. local item = self.Awards[kmlcontrol]
  73. item:RefreshAwardItem(data)
  74. end
  75. ---注册UI事件和服务器消息
  76. function this:RegistEvents()
  77. GUI:AddOnClickEvent(self.view.CloseBG, self, self.ClosePanle)
  78. end
  79. function this:ClosePanle()
  80. GUI:UIPanel_Close("dev/outui/ShapeShiftCard/Panel/KLShapeShiftCardAward/KLShapeShiftCardAwardPanel")
  81. end
  82. function this:SetTitle()
  83. GUI:Image_loadTexture(self.view.title, "title_Reward", "Atlas/UIMisc.spriteatlas")
  84. end
  85. function this:Close()
  86. self.info = {}
  87. self.Awards = {}
  88. end
  89. return this