autoImport("PushBaseCell") autoImport("SpriteLabel") FloatMessage = class("FloatMessage",PushBaseCell) FloatMessage.resID = ResourcePathHelper.UICell("FloatMessage") function FloatMessage:ctor(parent) self.speed = 300 self.previous = nil self.follow = nil self.floating = false self.targetY = 0 self.gameObject = self:CreateObj(parent) self:Init() end function FloatMessage:Init() self.msg = self:FindGO("MessageContent"):GetComponent(UILabel) self.spriteLabel = SpriteLabel.CreateAsTable() self.spriteLabel:Init(self.msg,nil,30,30) self.bg = GameObjectUtil.Instance:DeepFindChild(self.gameObject, "Bg"):GetComponent(UISprite) end function FloatMessage:CreateObj(parent) return Game.AssetManager_UI:CreateAsset(FloatMessage.resID,parent) end function FloatMessage:Destroy() self.data = nil if(self.spriteLabel) then self.spriteLabel:Destroy() self.spriteLabel = nil end Game.GOLuaPoolManager:AddToUIPool(FloatMessage.resID, self.gameObject) end function FloatMessage:SetY(y) local pos = self.gameObject.transform.localPosition pos.y = y self.gameObject.transform.localPosition = pos end function FloatMessage:GetY() local x,y,z = LuaGameObject.GetLocalPosition(self.gameObject.transform) return y end function FloatMessage:GetH() return self.bg.height end function FloatMessage:_SetText(text) if(self.spriteLabel) then self.spriteLabel:SetText(text,false) else self.msg.text = text end end function FloatMessage:_AddSprites() if(self.spriteLabel) then self.spriteLabel:AddSprites() end self:ResetBgWidthHeight() end function FloatMessage:SetMsg(text) self:_SetText(text) UIUtil.FitLabelLine(self.msg) self:_AddSprites() end function FloatMessage:SetMsgCenterAlign( text ) self:_SetText(text) UIUtil.CenterLabelLine(self.msg) self:_AddSprites() end function FloatMessage:ResetBgWidthHeight() self.bg.width = self.msg.width + 78 self.bg.height = self.msg.height + 57 end function FloatMessage:Parsed() return (self.data==nil or self.data.parsed == true) end function FloatMessage:NextToPush() self.data.parsed = true if(self.data.params~=nil and type(self.data.params)=="table") then self.data.text = MsgParserProxy.Instance:TryParse(self.data.text,unpack(self.data.params)) else self.data.text = MsgParserProxy.Instance:TryParse(self.data.text,self.data.params) end self:SetMsg(self.data.text) end