源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

91 lines
2.5 KiB

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