源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

147 строки
5.1 KiB

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