MessageItemNew = MessageItemNew or BaseClass(BaseItem) local MessageItemNew = MessageItemNew MessageItemNew.Height = 32 MessageItemNew.MoveOffset = 20 function MessageItemNew:__init(parent,prefab_asset,layer_name,create_callback) self.base_file = "message" self.layout_file = "miniMessage" self.layer_name = "Top" self.create_callback = create_callback self:Load() end function MessageItemNew:Load_callback() -- self.nodes = { -- "content:txt", -- "bg", -- } -- self:GetChildren(self.nodes) self.height = MessageItemNew.Height self.bg = self:GetChild("bg").gameObject self.bg_transform = self.bg.transform self.text = self:GetChild("Text"):GetComponent("TMP_Text") if self.create_callback then self:create_callback(self) end self:AddEvents() if self.need_refreshData then self:UpdateView() end end function MessageItemNew:AddEvents( ) end function MessageItemNew:UpdateView( ) self.text.text = self.data.content self:SetVisible(true) self:SetPosition(0,-self.real_index*(self.height)) local function time_callback () self.time_count = self.time_count + 1 if self.time_count >= 2 then SysInfoCtrl.Instance:DeleteFuncCallBack("MessageItemNew"..self.real_index) self.callback(self, self.index, self.real_index) end end SysInfoCtrl.Instance:SetFuncCallBack(time_callback, "MessageItemNew"..self.real_index) SetSizeDeltaX(self.bg_transform, self.text.preferredWidth + 72) end --real_index是目前正在飘的所有item总数 function MessageItemNew:SetData( data ,index, real_index, callback) self.data = data self.index = index self.real_index = real_index self.callback = callback if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function MessageItemNew:Reset( ) self.time_count = 0 SetAnchoredPositionY(self.transform,0) cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform) self.is_first_create = true end function MessageItemNew:__delete( ) cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform) SysInfoCtrl.Instance:DeleteFuncCallBack("MessageItemNew"..self.real_index) end