|
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
|