74 lines
2.0 KiB
Plaintext
74 lines
2.0 KiB
Plaintext
NoticeMsgView = class("NoticeMsgView",ContainerView)
|
|
|
|
NoticeMsgView.ViewType = UIViewType.BoardLayer
|
|
|
|
function NoticeMsgView:Init()
|
|
self:FindObjs()
|
|
self:AddEvts()
|
|
|
|
self.noticeMsgList = {}
|
|
end
|
|
|
|
function NoticeMsgView:FindObjs()
|
|
self.noticeMsg = self:FindGO("NoticeMsg"):GetComponent(TweenPosition)
|
|
self.noticeMsgLabel = self:FindGO("NoticeMsgLabel"):GetComponent(UILabel)
|
|
self.noticeMsgLabelTween = self.noticeMsgLabel.gameObject:GetComponent(TweenPosition)
|
|
end
|
|
|
|
function NoticeMsgView:AddEvts()
|
|
self:AddListenEvt(SystemMsgEvent.NoticeMsg,self.HandleNoticeMsg)
|
|
end
|
|
|
|
function NoticeMsgView:HandleNoticeMsg(note)
|
|
local data = note.body
|
|
|
|
table.insert(self.noticeMsgList , data)
|
|
-- LogUtility.InfoFormat("AddNoticeMsg : {0}",data.text)
|
|
if #self.noticeMsgList == 1 then
|
|
self:PlayNoticeMsg()
|
|
end
|
|
end
|
|
|
|
function NoticeMsgView:PlayNoticeMsg()
|
|
if #self.noticeMsgList > 0 then
|
|
local msg = self.noticeMsgList[1]
|
|
local text = msg.param and MsgParserProxy.Instance:TryParse(msg.text,unpack(msg.param)) or msg.text
|
|
self:PlayForwardNoticeMsg(text)
|
|
end
|
|
end
|
|
|
|
function NoticeMsgView:PlayForwardNoticeMsg(text)
|
|
self.noticeMsgLabel.text = text
|
|
|
|
self.noticeMsg:PlayForward()
|
|
|
|
self.noticeMsg:SetOnFinished(function ()
|
|
local perHeight = self.noticeMsgLabel.fontSize + self.noticeMsgLabel.spacingY
|
|
local line = self.noticeMsgLabel.printedSize.y / perHeight
|
|
|
|
if line > 1 then
|
|
LeanTween.delayedCall (self.gameObject, GameConfig.ShowNotice.duration , function ()
|
|
self.noticeMsgLabelTween:PlayForward()
|
|
self.noticeMsgLabelTween:SetOnFinished(function ()
|
|
self:PlayReverseNoticeMsg()
|
|
end)
|
|
end)
|
|
else
|
|
self:PlayReverseNoticeMsg()
|
|
end
|
|
end)
|
|
end
|
|
|
|
function NoticeMsgView:PlayReverseNoticeMsg()
|
|
LeanTween.delayedCall (self.gameObject, GameConfig.ShowNotice.duration , function ()
|
|
self.noticeMsg:PlayReverse()
|
|
self.noticeMsg:SetOnFinished(function ()
|
|
if self.noticeMsg.value == self.noticeMsg.from then
|
|
self.noticeMsgLabelTween:ResetToBeginning()
|
|
|
|
table.remove(self.noticeMsgList , 1)
|
|
self:PlayNoticeMsg()
|
|
end
|
|
end)
|
|
end)
|
|
end |