-- 继承此界面 UIGuildAlliesUseItemPop local UIUseItemPop = UIViewClass() local MaxCount = 99 local MinCount = 1 local EventSystem = require('Event/EventSystem') --消耗道具通用界面 function UIUseItemPop:OnOpened(context) -- 继承基础数据 self.keyBoardView = nil self.titleIDS = context.TitleIDS --界面标题 self.tipIDS = context.TipIDS --提示文本 self.btnIDS = context.BtnIDS --按钮文本 --没传按钮文本的话,使用通用文本 if self.btnIDS == nil then self.btnIDS = Const_IDS.IDS_BUTTON_USE end UIUtils.SetLabelText(self.UICommonPopUp.txt_Title,self.titleIDS) UIUtils.SetLabelText(self.txt_Tip,self.tipIDS) UIUtils.SetLabelText(self.lab_Buy,self.btnIDS) self:Init(context) end -- BASE function UIUseItemPop:Init(context) self.eventParamId = context.EventParamId --消耗请求的参数ID self.itemId = context.ItemId --消耗的道具ID self.buyEvent = context.BuyEvent --消耗的事件 --当前拥有道具数量 local count = UTL.Item.GetItemStockCount(self.itemId) UIUtils.SetLabel(self.txt_Current,string.FormatByIdsId(Const_IDS.IDS_GuildDonate_ItemNum,count)) self.maxCount = count > MaxCount and MaxCount or count self.useCount = 1 UIUtils.SetLabel(self.txt_Count,self.useCount) end -- BASE function UIUseItemPop:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.btn_Count then --输入数量弹窗 if not self.keyBoardView then self.keyBoardView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIKeypad), {parentView = self, x = 731, y = 110, minNum = MinCount, maxNum = self.maxCount}) end elseif comp == self.btn_Minus then --减少 if self.useCount > 1 then self.useCount = self.useCount -1 end UIUtils.SetLabel(self.txt_Count,self.useCount) elseif comp == self.btn_Plus then --增加 if self.useCount < self.maxCount then self.useCount = self.useCount +1 end UIUtils.SetLabel(self.txt_Count,self.useCount) elseif comp == self.btn_Max then --最大数量 self.useCount = self.maxCount UIUtils.SetLabel(self.txt_Count,self.useCount) elseif comp == self.btn_Buy then --消耗 EventSystem.Dispatch(self.buyEvent,self.eventParamId,self.useCount) self:CloseView() end end -- BASE function UIUseItemPop:ExcuteKeyBoardBack(count, paramData) self:keyPadCallback(count) end function UIUseItemPop:CloseKeyBoardView() self.keyBoardView:CloseView() self.keyBoardView = nil end --数字键盘回调 function UIUseItemPop:keyPadCallback(value) if value <= 0 then self.useCount = 1 else self.useCount = value > self.maxCount and self.maxCount or value end UIUtils.SetLabel(self.txt_Count,self.useCount) end function UIUseItemPop:OnClosed() self.keyBoardView = nil end return UIUseItemPop