local UIWaitingView = require("UIWaiting/UIWaitingView_Generate") function UIWaitingView:OnAwake(data) self.controller = require("UIWaiting/UIWaitingCtr"):new() self.controller:Init(self) self.controller:SetData(data) end function UIWaitingView:AddEventListener() end function UIWaitingView:FillContent(data, uiBase) self.uiBase = uiBase local gameObject = self.uiBase:GetRoot() if gameObject ~= nil then self.gameObject = gameObject self.transform = gameObject.transform end self:InitGenerate(self.transform, data) self:Init() end function UIWaitingView:Init() --LogError("Type = "..self.controller.NoticeType) self.noticeRoot:SetActive(self.controller.NoticeType >= 0) if self.controller.NoticeType == 1 then -- 普通 self.notice.text.text = self.controller.NoticeText elseif self.controller.NoticeType == 2 then --计时 self:AutoPlayTimer() end end function UIWaitingView:RemoveEventListener() ManagerContainer.LuaEventMgr:Unregister(self.uiData.name) end function UIWaitingView:AddUIEventListener() ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name) end function UIWaitingView:OnHide() if self.curTimer then ManagerContainer.LuaTimerMgr:RemoveTimer(self.curTimer) self.curTimer = nil end end function UIWaitingView:OnShow(data) self.controller:SetData(data) self:Init() end function UIWaitingView:OnClose() if self.curTimer then ManagerContainer.LuaTimerMgr:RemoveTimer(self.curTimer) self.curTimer = nil end end function UIWaitingView:OnDispose() end function UIWaitingView:AutoPlayTimer() self.maxTime = self.controller.TimeData[1] self.dtTime = self.controller.TimeData[2] self.TimerCount = math.ceil(self.maxTime/self.dtTime) self.EndTimerCb = self.controller.TimeData[3] self.EndTimerCbParams = self.controller.TimeData[4] self.curTime =0 self.curTimer = nil --LogError("maxTime = "..self.maxTime.." dtTime = "..self.dtTime.." TimerCount = "..self.TimerCount) self:StartTimer() end function UIWaitingView:StartTimer() self.notice.text.text = string.formatbykey(self.controller.NoticeText,tostring(self.maxTime)) self.curTimer = ManagerContainer.LuaTimerMgr:AddLuaTimer(self.dtTime * 1000, self.TimerCount,function () self:UpdateTimer() end, nil) end function UIWaitingView:UpdateTimer() self.curTime = self.curTime + 1 --self.timersTxt.text.text = tostring(self.maxTime - self.curTime) --string.formatbykey('WalletGold',price)--tostring(price) -- if self.notice then -- self.notice.text.text = string.formatbykey(self.controller.NoticeText, -- tostring(self.maxTime - (self.dtTime * self.curTime))) -- end self.notice.text.text = string.formatbykey(self.controller.NoticeText,tostring(self.maxTime - (self.dtTime* self.curTime))) if (self.TimerCount <= self.curTime) then ManagerContainer.LuaTimerMgr:RemoveTimer(self.curTimer) self.curTimer = nil self.EndTimerCb(self.EndTimerCbParams) end end return UIWaitingView