GuideTaskLimitView = GuideTaskLimitView or BaseClass(BaseView) function GuideTaskLimitView:__init() self.base_file = "guide" self.layout_file = "GuideTaskLimitView" self.layer_name = "Top" self.close_mode = CloseMode.CloseDestroy self.destroy_imm = true self.load_callback = function () self:LoadSuccess() self:InitEvent() end self.open_callback = function () self.diff_time = 10 GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK) self:StartTimer() end self.close_callback = function () GlobalEventSystem:Fire(EventName.START_AUTO_DO_TASK) end self.destroy_callback = function () self:Clear() end end function GuideTaskLimitView:Clear() self:StopTimer() end function GuideTaskLimitView:LoadSuccess() self.sureBtn = self:GetChild("sureBtn").gameObject self.label = self:GetChild("sureBtn/Text"):GetComponent("Text") end function GuideTaskLimitView:InitEvent() local function clickHandler(target) self:Close() end AddClickEvent(self.sureBtn, clickHandler) end function GuideTaskLimitView:StartTimer() local function onTimer() if self.diff_time < 0 then self:Close() else self.label.text = string.format("确定(%d)", self.diff_time) self.diff_time = self.diff_time - 1 end end if not self.timer_id then self.timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer,1,-1) end end function GuideTaskLimitView:StopTimer() self.label.text = "" if self.timer_id then GlobalTimerQuest:CancelQuest(self.timer_id) self.timer_id = nil end end