diff --git a/lua/app/ui/common/cell/player_head_cell.lua b/lua/app/ui/common/cell/player_head_cell.lua index 48122fa5..d18ba084 100644 --- a/lua/app/ui/common/cell/player_head_cell.lua +++ b/lua/app/ui/common/cell/player_head_cell.lua @@ -5,11 +5,25 @@ function PlayerHeadCell:init() self.imgFrame = uiMap["player_head_cell.img_frame"] self.imgAvatar = uiMap["player_head_cell.img_avatar"] + + self:bind(DataManager.PlayerData, "dirty", function() + if self.isSelf then + self:refresh() + end + end, true) end -function PlayerHeadCell:refresh() +-- (avatarId:头像id,frameId:头像框id) +function PlayerHeadCell:refresh(avatarId, frameId) + if avatarId == nil or frameId == nil then + -- 是玩家自己 + self.isSelf = true + avatarId = DataManager.PlayerData:getUsingAvatarId() + frameId = DataManager.PlayerData:getUsingFrameId() + end + -- 头像 - local avatarName = DataManager.PlayerData:getAvatarIconId(DataManager.PlayerData:getUsingAvatarId()) + local avatarName = DataManager.PlayerData:getAvatarIconId(avatarId) if avatarName then self.imgAvatar:setSprite(GConst.ATLAS_PATH.ICON_HERO, avatarName, function() self.imgAvatar:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE):SetNativeSize() @@ -17,7 +31,7 @@ function PlayerHeadCell:refresh() end -- 头像框 - local frameName = DataManager.PlayerData:getFrameIconId(DataManager.PlayerData:getUsingFrameId()) + local frameName = DataManager.PlayerData:getFrameIconId(frameId) if frameName then self.imgFrame:setSprite(GConst.ATLAS_PATH.ICON_AVATAR, frameName, function() self.imgFrame:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE):SetNativeSize() diff --git a/lua/app/ui/main_city/main_city_ui.lua b/lua/app/ui/main_city/main_city_ui.lua index 7ce3ec31..639b8ffc 100644 --- a/lua/app/ui/main_city/main_city_ui.lua +++ b/lua/app/ui/main_city/main_city_ui.lua @@ -600,10 +600,10 @@ function MainCityUI:initPlayerInfo() self.uiMap["main_ui.player_node"]:addClickListener(function () UIManager:showUI("app/ui/player_info/player_info_ui") end) + self.headCell:refresh() end function MainCityUI:refreshPlayerInfo() - self.headCell:refresh() local lv = DataManager.PlayerData:getLv() self.playerLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, lv)) self.playerSlider:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = DataManager.PlayerData:getExpPercent()