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