39 lines
1.2 KiB
Lua
39 lines
1.2 KiB
Lua
local SkinCell = class("SkinCell", BaseCell)
|
|
|
|
|
|
function SkinCell:init()
|
|
local uiMap = self:getUIMap()
|
|
self.spineRoot = uiMap["skin_cell.spine_root.spine_hero"]
|
|
self.bgQlt = uiMap["skin_cell.bg_qlt"]
|
|
self.imgQlt = uiMap["skin_cell.bg_qlt.img_qlt"]
|
|
self.select = uiMap["skin_cell.select"]
|
|
self.imgS = uiMap["skin_cell.img_s"]
|
|
|
|
self:addClickListener(function()
|
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.SKIN_SELECT, self.skinId)
|
|
end)
|
|
end
|
|
|
|
function SkinCell:refresh(id, isSelect)
|
|
self.skinId = id
|
|
local cfg = DataManager.SkinData:getSkinCfg(self.skinId)
|
|
|
|
SpineManager:loadHeroAsync(DataManager.SkinData:getModelId(self.skinId), self.spineRoot, function(spineObject)
|
|
if self.spineHero then
|
|
self.spineHero:destroy()
|
|
self.spineHero = nil
|
|
end
|
|
spineObject:setDefaultMix(0)
|
|
self.spineHero = spineObject
|
|
end)
|
|
|
|
local qlt = cfg.qlt
|
|
|
|
self.imgS:setActive(qlt >= 4)
|
|
self.select:setActive(isSelect)
|
|
self.baseObject:setSprite(GConst.ATLAS_PATH.HERO, "hero_skin_frame_".. qlt .. "_1")
|
|
self.bgQlt:setSprite(GConst.ATLAS_PATH.HERO, "hero_frame_bg_".. qlt)
|
|
self.imgQlt:setSprite(GConst.ATLAS_PATH.HERO, "hero_skin_" .. qlt)
|
|
end
|
|
|
|
return SkinCell |