SysInfoHornView = SysInfoHornView or BaseClass()
|
|
|
|
SysInfoHornView.MAX_MSG_COUNT = 10
|
|
|
|
function SysInfoHornView:__init()
|
|
self.has_text = false
|
|
self.time = 0.0
|
|
self.item = nil
|
|
self.speed = 150
|
|
|
|
self.text_list = Array.New()
|
|
self.idle_text_list = Array.New()
|
|
|
|
local function call_back(objs)
|
|
self.prefab_asset = objs[0]
|
|
self:CreateMessageContainer()
|
|
for i=1,3 do
|
|
self.text_list:PushBack(self.item:GetChild("Text"..i))
|
|
end
|
|
end
|
|
lua_resM:loadPrefab(self,"common","HornTv", call_back)
|
|
end
|
|
|
|
function SysInfoHornView:__delete()
|
|
lua_resM:clearReference(self)
|
|
self:CancelDelayTimer()
|
|
end
|
|
|
|
function SysInfoHornView:CancelDelayTimer( )
|
|
if self.time_id then
|
|
GlobalTimerQuest:CancelQuest(self.time_id)
|
|
self.time_id = nil
|
|
end
|
|
end
|
|
|
|
function SysInfoHornView:CreateMessageContainer()
|
|
if self.prefab_asset then
|
|
self.item = HornTv.New(panelMgr:GetParent("Top"),self.prefab_asset)
|
|
end
|
|
end
|
|
|
|
|
|
function SysInfoHornView:AppendMessage()
|
|
if not self.has_text then
|
|
self:RunMessage()
|
|
end
|
|
end
|
|
|
|
function SysInfoHornView:RunMessage()
|
|
if not self.item then return end
|
|
local info = ChatModel:getInstance():RemoveDelayHorn()
|
|
if not info then return end
|
|
if SceneManager:getInstance():IsNoHornAndNoticeScene() then return end
|
|
|
|
local text = self.text_list:PopFront()
|
|
--1.所有text正在使用 2.TweenLite回调没有执行 -->把第一个text取出使用
|
|
if not text then text = self.idle_text_list:PopFront() return end
|
|
self.idle_text_list:PushBack(text)
|
|
local content = ""
|
|
if info.is_teaching then
|
|
content = string.format("<color='%s'>%s</color>", info.color, info.msg)
|
|
else
|
|
content = string.format("<color='%s'>%s:%s</color>", ColorUtil.YELLOW, info.name, info.msg)
|
|
end
|
|
|
|
SetInlineText(text:GetComponent("Text"),content)
|
|
|
|
text.sizeDelta = Vector2(text:GetComponent("Text").preferredWidth,35)
|
|
self.has_text = true
|
|
self.item.gameObject:SetActive(true)
|
|
text.gameObject:SetActive(true)
|
|
|
|
--滚屏
|
|
local pos = text.localPosition
|
|
local tSize = self.item.transform.sizeDelta
|
|
self.time = (text.sizeDelta.x + tSize.x) / self.speed
|
|
text.localPosition = Vector3(text.sizeDelta.x/2 + tSize.x/2, pos.y, pos.z)
|
|
local tween_id = TweenLite.to(self, text, TweenLite.UiAnimationType.POSX, -tSize.x/2 - text.sizeDelta.x/2, self.time, function ()
|
|
self.text_list:PushBack(self.idle_text_list:PopFront())
|
|
if ChatModel:getInstance():GetDelayHornNum() <= 0 then
|
|
self.item.gameObject:SetActive(false)
|
|
self.has_text = false
|
|
else
|
|
self:RunMessage()
|
|
end
|
|
end)
|
|
end
|
|
|
|
function SysInfoHornView:SetHide(bool)
|
|
self.item.gameObject:SetActive(not bool)
|
|
end
|