|
|
- ChatDressItem = ChatDressItem or BaseClass(BaseItem)
-
- function ChatDressItem:__init(parent)
- self.base_file = "chatDress"
- self.layout_file = "ChatDressItem"
- self.data = nil
- self.is_selected = false
- self.index = 0
- self.event_list = {}
- self.prop_item_list = {}
- self.model = ChatDressModel:getInstance()
-
- self:Load()
-
-
- end
-
- function ChatDressItem:Load_callback()
- self.nodes = {
- "select_image:obj",
- "click_con:obj",
- "mark_image:obj",
- "lock_image:obj",
- "wear_image:obj",
- "active_image:obj",
- "head:img:obj",
- "red_image:obj",
- "name_text:tmp",
- }
- self:GetChildren(self.nodes)
- self:InitEvent()
- if self.need_refreshData then
- self:UpdateView()
- end
-
- if self.need_reselect then
- self:SetSelect(self.select_id)
- end
- end
-
- function ChatDressItem:InitEvent()
- local function onClick(target)
- self.call_back(self.index, self.data)
- end
- AddClickEvent(self.click_con_obj, onClick)
- end
-
- -- 装扮信息
- function ChatDressItem:SetData(index, data, call_back)
- self.index = index
- self.data = data
- self.call_back = call_back
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function ChatDressItem:UpdateView( )
- local data = self.data
- local type_id = data.dress_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- local goods_icon = goods_basic.goods_icon
- type_id = tonumber(type_id)
- local goods_name = GoodsModel:getInstance():getGoodsName(type_id, false)
- self.name_text_tmp.text = goods_name
- if Config.ConfigGoodsByCareer[type_id] then
- goods_icon = Config.ConfigGoodsByCareer[type_id][RoleManager.Instance.mainRoleInfo.career]
- end
- local set_img_cb = function ( )
- local new_width = GetSizeDeltaX(self.head_img.transform) * 0.95
- local new_height = GetSizeDeltaY(self.head_img.transform) * 0.95
- SetSizeDelta(self.head_img.transform, new_width, new_height)
- end
- lua_resM:setOutsideImageSprite(self, self.head_img, GameResPath.GetGoodsIcon(goods_icon), true, set_img_cb)
- self.wear_image_obj:SetActive(self.model:GetCurUseDressId(data.dress_type) == data.dress_id)
- self.lock_image_obj:SetActive(false)
- local can_active = data.can_active and true or false
- self.active_image_obj:SetActive(can_active)
- self.mark_image_obj:SetActive(not data.is_active and not data.can_active)
- end
-
- --
- function ChatDressItem:ClickFunc()
- self:SetSelect(true)
- end
-
- function ChatDressItem:GetActiveState( )
- local data = self.data
- if data.is_active and not data.can_active then
- return ChatDressModel.AcitiveState.Actived
- elseif not data.is_active and not data.can_active then
- return ChatDressModel.AcitiveState.Locked
- elseif not data.is_active and data.can_active then
- return ChatDressModel.AcitiveState.CanActive
- end
- end
-
- function ChatDressItem:GetId( )
- return self.data.dress_id
- end
-
- -- 选择情况
- function ChatDressItem:SetSelect(index)
- self.select_id = index
- if self.is_loaded then
- self.need_reselect = false
- self.select_image_obj:SetActive(self.select_id == self.index)
- else
- self.need_reselect = true
- end
- end
-
- function ChatDressItem:__delete()
- for k, v in pairs(self.event_list) do
- self.model:UnBind(v)
- v = nil
- end
- self.event_list = {}
-
- if self.bag_change_event_id then
- GoodsModel:getInstance():UnBind(self.bag_change_event_id)
- self.bag_change_event_id = nil
- end
-
- if #self.prop_item_list > 0 then
- for k, v in pairs(self.prop_item_list) do
- v:DeleteMe()
- v = nil
- end
- end
- end
-
- function ChatDressItem:SetRedPoint()
- -- self.red_point:SetActive(isTrue)----红点先去除
- end
|