|
|
- MessageItem = MessageItem or BaseClass(BaseItem)
- local MessageItem = MessageItem
- local EnglineVersion = EnglineVersion
- local AppConst_EnglineVer = AppConst_EnglineVer
- local MsgType = {
- Normal = 1,
- Exp = 2,
- }
- function MessageItem:__init(parent,prefab_asset,layer_name,callback,msg_type)
- self.base_file = "message"
- self.layout_file = "miniMessage"
- self.layer_name = "Top"
- self.anim_list = {}
- self.timer_list = {}
- self.fade_in_time = 0.8
- self.stay_time = 0.3
- self.fade_out_time = 0.6
- self.state = 0
- self.content = ""
- self.callback = callback
- self.msg_type = msg_type
- self:Load()
- end
-
- function MessageItem:__delete()
- self:StopAnim()
- end
-
- function MessageItem:Load_callback()
- self.bg = self:GetChild("bg").gameObject
- self.bg_transform = self.bg.transform
- --self.bg_img = self.bg:GetComponent("Image")
- self.text = self:GetChild("Text"):GetComponent("Text")
- self.expText = self:GetChild("expText"):GetComponent("Text")
- self.out_line = self:GetChild("expText"):GetComponent("Outline")
- self.canvasGroup = self.transform:GetComponent("CanvasGroup")
- self.gameObject:SetActive(false)
- end
-
- function MessageItem:CreateFinAnim(content)
- if not self.gameObject then return end
- self:StopAnim()
- self.state = 1
- self:ResetUIZDepth()
- self.content = content or self.content
-
- -- item.bg.sizeDelta = Vector2(item.text.preferredWidth + 50,43)
- self.gameObject:SetActive(true)
- self:AddUIZDepth()
- self.canvasGroup.alpha = 0.0
-
- --不仅z轴要跑到最前面, orderinlayer也要最前面
- UIDepth.SetUIDepth(self.gameObject,true,self:GetCurrLayerDepth(self.layer_name)+1)
- --层次要在ui层,不设就在default层,会低于ui层而看不到
- self.gameObject.layer = UIPartical.RenderingOther_List.UI
-
- --设置每一个item的位置,让所有item居中
- SetLocalPosition(self.transform, 0,0,GetLocalPositionZ(self.transform))
-
- self.text.text = self.content
-
- --目前是写死310的文本长度,如果超过了,让策划改文本
- -- local width = math.max(300,self.text.preferredWidth+40)
- self.bg_transform.sizeDelta = Vector2(310,48)
-
- local index = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSY, GetLocalPositionY(self.transform) + 90, self.fade_in_time, function()
- self:CreateStayAnim()
- end)
- table.insert(self.anim_list, index)
-
- local temp1 = TweenLite.to (self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 1, self.fade_in_time)
- table.insert(self.anim_list, temp1)
- --[[
- if EnglineVersion and AppConst_EnglineVer >= 24 then
- -- local temp1 = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 1, self.fade_in_time)
- -- table.insert(self.anim_list, temp1)
- local temp1 = TweenLite.to (self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 1, self.fade_in_time)
- table.insert(self.anim_list, temp1)
- else
- local temp1 = TweenLite.to (self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 1, self.fade_in_time)
- table.insert(self.anim_list, temp1)
- -- local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 1, self.fade_in_time)
- -- table.insert(self.anim_list, temp2)
- end
- --]]
- end
-
- function MessageItem:CreateStayAnim()
- self:StopAnim()
- self.state = 2
- -- if EnglineVersion and AppConst_EnglineVer >= 24 then
- self.canvasGroup.alpha = 1
- -- else
- -- SetAlpha(self.bg_img, 1)
- -- SetAlpha(self.text, 1)
- -- end
- table.insert(self.timer_list, GlobalTimerQuest:AddDelayQuest(function()
- self:CreateFoutAnim()
- end, self.stay_time))
- if self.callback then
- self.callback()
- end
- end
-
- function MessageItem:CreateFoutAnim()
- self:StopAnim()
- self.state = 3
- local anim_end_func = function ()
- self.state = 0
- self:StopAnim()
- self:ResetUIZDepth()
- self.gameObject:SetActive(false)
- end
- local index = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSY, GetLocalPositionY(self.transform) + 100, self.fade_out_time, anim_end_func)
- table.insert(self.anim_list, index)
-
- local temp1 = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 0, self.fade_out_time)
- table.insert(self.anim_list, temp1)
- -- local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
- -- table.insert(self.anim_list, temp2)
- --[[
- if EnglineVersion and AppConst_EnglineVer >= 24 then
- -- local index = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 0, self.fade_out_time)
- -- table.insert(self.anim_list, index)
- local temp1 = TweenLite.to(self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
- table.insert(self.anim_list, temp1)
- local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
- table.insert(self.anim_list, temp2)
- else
- local temp1 = TweenLite.to(self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
- table.insert(self.anim_list, temp1)
- local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
- table.insert(self.anim_list, temp2)
- end
- --]]
- end
-
- function MessageItem:StopAnim()
- for i,v in ipairs(self.anim_list) do
- TweenLite.Stop(v)
- end
- self.anim_list = {}
- for i,v in ipairs(self.timer_list) do
- GlobalTimerQuest:CancelQuest(self.timer_list)
- end
- self.timer_list = {}
- end
|