CommonMultiKillCon = CommonMultiKillCon or BaseClass(BaseItem) local CommonMultiKillCon = CommonMultiKillCon function CommonMultiKillCon:__init() self.base_file = "common" self.layout_file = "CommonMultiKillCon" self.is_play_multi_action = false self.is_need_hide_anim = false self:Load() end function CommonMultiKillCon:Load_callback() self.nodes = { "multi_con/multi_text:txt", "multi_con:obj", } self:GetChildren(self.nodes) self.multi_con_canvas = self.multi_con:GetComponent("CanvasGroup") self:AddEvents() if self.need_refreshData then self:SetMultiKillNum(self.multi_num, self.no_action) end end function CommonMultiKillCon:AddEvents( ) end function CommonMultiKillCon:SetIsNeedHideAnim(bool) self.is_need_hide_anim = bool end function CommonMultiKillCon:SetMultiKillNum( num,no_action ) self.multi_num = num self.no_action = no_action if not self.is_loaded then self.need_refreshData = true return else self.need_refreshData = false end self.multi_text_txt.text = num if self.is_play_multi_action or self.no_action then return else if self.multi_kill_anim_id then TweenLite.Stop(self.multi_kill_anim_id) self.multi_kill_anim_id = nil end self.multi_con_canvas.alpha = 1 self.is_play_multi_action = true SetLocalScale(self.multi_text, 1.3,1.3,1.3) local function onComplete( ... ) self.is_play_multi_action = false if self.is_need_hide_anim then self:StartMultiKillCountDown(2) end end self.scale_id = TweenLite.to(self, self.multi_text, TweenLite.UiAnimationType.SCALE, Vector3.one ,0.3, onComplete) end end function CommonMultiKillCon:StartMultiKillCountDown( time ) self:StopMultiKillCountDown() local function onBoxTimer() time = time - 1 if time <= 0 then local function anim_end_func( ... ) end self.multi_kill_anim_id = TweenLite.to(self, self.multi_con_canvas,TweenLite.UiAnimationType.ALPHA, 0, 0.5, anim_end_func) end end self.multi_timer_id = GlobalTimerQuest:AddPeriodQuest(onBoxTimer, 1, -1) end function CommonMultiKillCon:StopMultiKillCountDown( ) if self.multi_timer_id then GlobalTimerQuest:CancelQuest(self.multi_timer_id) self.multi_timer_id = nil end end function CommonMultiKillCon:StopMultiKillAction( ) if self.scale_id then TweenLite.Stop(self.scale_id) self.scale_id = nil end end function CommonMultiKillCon:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function CommonMultiKillCon:__delete( ) self:StopMultiKillCountDown() self:StopMultiKillAction() end