---@class KLShapeShiftCardAwardPanel:UIKmlLuaPanelBase ---@field view KLShapeShiftCardAwardPanelView local KLShapeShiftCardAwardPanel = class(UIKmlLuaPanelBase) local this = KLShapeShiftCardAwardPanel function this:AsyncLoadUI() end ---创建时调用一次 function this:Init() self.Awards = {} self.closeTime = 3 GUI:DataListInitData(self.view.rewards_mid, function() return table.count(self.info) end, function(realIndex) return self:DataListItemGetFunc_1(realIndex) end, nil, function(realIndex, kmlcontrol) return self:DataListItemUpdateFunc(realIndex, kmlcontrol) end) GUI:DataListInitData(self.view.rewards_left, function() return table.count(self.info) end, function(realIndex) return self:DataListItemGetFunc_2(realIndex) end, nil, function(realIndex, kmlcontrol) return self:DataListItemUpdateFunc(realIndex, kmlcontrol) end) end ---创建或者刷新界面数据时调用 function this:Refresh() if not self.info then self.info = {} end for _, v in pairs(self.args) do self.info[#self.info + 1] = v end if #self.info > 3 then GUI:setVisible(self.view.scrollview_left, true) GUI:setVisible(self.view.scrollview_mid, false) GUI:DataListUpdateData(self.view.rewards_left) self.itemBindRoot = self.view.rewards_left else GUI:setVisible(self.view.scrollview_left, false) GUI:setVisible(self.view.scrollview_mid, true) GUI:DataListUpdateData(self.view.rewards_mid) self.itemBindRoot = self.view.rewards_mid end --到达时间后关闭 SL:ScheduleOnce(self.closeTime, function() self:ClosePanle() end) end function this:DataListItemGetFunc_1() local item = GUI:UIPanel_Open("dev/outui/ShapeShiftCard/Item/KLShapeShiftCard/KLShapeShiftCardItem", self.view.rewards_mid, self, { type = E_ShapeShiftCardFuncType.House }, true) local kmlCtrl = item.view.root self.Awards[kmlCtrl] = item return kmlCtrl end function this:DataListItemGetFunc_2() local item = GUI:UIPanel_Open("dev/outui/ShapeShiftCard/Item/KLShapeShiftCard/KLShapeShiftCardItem", self.view.rewards_left, self, { type = E_ShapeShiftCardFuncType.House }, true) local kmlCtrl = item.view.root self.Awards[kmlCtrl] = item return kmlCtrl end function this:DataListItemUpdateFunc(realIndex, kmlcontrol) local data = self.info[realIndex + 1] local item = self.Awards[kmlcontrol] item:RefreshAwardItem(data) end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:AddOnClickEvent(self.view.CloseBG, self, self.ClosePanle) end function this:ClosePanle() GUI:UIPanel_Close("dev/outui/ShapeShiftCard/Panel/KLShapeShiftCardAward/KLShapeShiftCardAwardPanel") end function this:SetTitle() GUI:Image_loadTexture(self.view.title, "title_Reward", "Atlas/UIMisc.spriteatlas") end function this:Close() self.info = {} self.Awards = {} end return this