local UICurrencyExchange = UIViewClass() local EventSystem = require('Event/EventSystem') local ChangeItemCountSpeed = 0.15 function UICurrencyExchange:OnCreated() self.keyBoardView = nil --按住的状态 self._pressPlus=false self._pressMinus=false end function UICurrencyExchange:OnOpened(context) self:RegistSystemEvent(EventID.UI_Shop_Close_Exchange, self.CloseWindow) self:RegistTriggerEvent(self.event_Plus, UIEventTriggerType.PointerDown) self:RegistTriggerEvent(self.event_Plus, UIEventTriggerType.PointerUp) self:RegistTriggerEvent(self.event_Minus, UIEventTriggerType.PointerDown) self:RegistTriggerEvent(self.event_Minus, UIEventTriggerType.PointerUp) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_Store_CoinExchange_Title) self.exchangeCount = 0 self.CurDragonJade = MDL.Currency.GetDragonJade() self.txt_JadeNum.text = self.CurDragonJade self.txt_NumSelect.text = 0 self.txt_GetNum.text = 0 UTL.Item.MoneyIcon(self.exchargeIcon, MDL.Currency.CurrencyType.GoldIngot) self.btn_Confirm:SetGray(true) end function UICurrencyExchange:OnBackButtonPressed() self:OnButtonClicked(self.btn_Cancel) end function UICurrencyExchange:OnButtonClicked(comp) if comp == self.btn_Confirm then if self.exchangeCount <= 0 then CTL.Tips.AddTipsMsg(Const_IDS.IDS_Store_CoinExchange_NotEnough) return end MDL.Shop.Exchange(MDL.Currency.CurrencyType.DragonJade, self.exchangeCount) elseif comp == self.btn_Cancel then self:CloseView() elseif comp == self.event_Count then if not self.keyBoardView then self.keyBoardView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIKeypad), {parentView = self, x = 581, y = 40, minNum = 0, maxNum = self.CurDragonJade}) end elseif comp == self.img_Bg then self:CloseView() elseif comp == self.UICommonPopUp.btn_Close then self:CloseView() end end function UICurrencyExchange:ExcuteKeyBoardBack(count, paramData) self:keyPadCallback(count) end function UICurrencyExchange:CloseKeyBoardView() self.keyBoardView:CloseView() self.keyBoardView = nil end --数字键盘回调 function UICurrencyExchange:keyPadCallback(value) self.exchangeCount = 0 if value <= 0 then self:RefreshCount(0) else self:RefreshCount(value) end end function UICurrencyExchange:RefreshCount(count) self.exchangeCount = self.exchangeCount + count if self.exchangeCount <= 0 then self:StopRepeatFunc(self.OnUpdateFun) self.exchangeCount = 0 self.btn_Confirm:SetGray(true) end if self.exchangeCount >= self.CurDragonJade then self:StopRepeatFunc(self.OnUpdateFun) self.exchangeCount = self.CurDragonJade self.btn_Confirm:SetGray(true) end if self.exchangeCount > 0 then self.btn_Confirm:SetGray(false) end self.txt_NumSelect.text = self.exchangeCount self.txt_GetNum.text = self.exchangeCount end function UICurrencyExchange:CloseWindow() self:CloseView() end function UICurrencyExchange:OnPointerDown(comp, eventData) if comp == self.event_Plus then self:RefreshCount(1) self:OnPressPlus() elseif comp == self.event_Minus then self:RefreshCount(-1) self:OnPressMinus() end end function UICurrencyExchange:OnPointerUp(comp, eventData) if comp == self.event_Plus then self:OnPressPlusStop() elseif comp == self.event_Minus then self:OnPressMinusStop() end end function UICurrencyExchange:OnPressPlus() self._pressPlus = true self:StartRepeatFunc(self.OnUpdateFun, ChangeItemCountSpeed) end function UICurrencyExchange:OnPressPlusStop() self._pressPlus = false self:StopRepeatFunc(self.OnUpdateFun) end function UICurrencyExchange:OnPressMinus() self._pressMinus = true self:StartRepeatFunc(self.OnUpdateFun, ChangeItemCountSpeed) end function UICurrencyExchange:OnPressMinusStop() self._pressMinus = false self:StopRepeatFunc(self.OnUpdateFun) end function UICurrencyExchange:OnUpdateFun(deltaTime, timeSineUpdate) if not self._pressPlus and not self._pressMinus then return end if self._pressPlus then self:RefreshCount(1) end if self._pressMinus then self:RefreshCount(-1) end end return UICurrencyExchange