-- <* -- @Author: Saber -- @Description: 经验副本路线排行界面前三名节点 -- *> ExpDunWaveRankTopItem = ExpDunWaveRankTopItem or BaseClass(BaseItem) local ExpDunWaveRankTopItem = ExpDunWaveRankTopItem function ExpDunWaveRankTopItem:__init(parent_wnd, prefab_asset, layer_name) self.base_file = "expDun" self.layout_file = "ExpDunWaveRankTopItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.model = ExpDunModel:getInstance() self:Load() end function ExpDunWaveRankTopItem:Load_callback() local nodes = { "bg:img", "head_con", "info_con", "info_con/vip_con", "info_con/name:tmp", } self:GetChildren(nodes) self.role_head_item = HeadRoleItem.New(self.head_con) self.role_head_item:SetAnchoredPosition(0, 0) self.vipItem = RoleVipItem.New(self.vip_con) self.vipItem:SetAnchoredPosition(0, 0) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function ExpDunWaveRankTopItem:AddEvents( ) end function ExpDunWaveRankTopItem:SetData(rank, data) self.rank = rank self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function ExpDunWaveRankTopItem:UpdateView( ) lua_resM:setImageSprite(self, self.bg_img, "expDun_asset", "exp_wave_rank_top" .. self.rank, true) -- 根据排名数据更新节点位置及头像大小 local size = self.rank == 1 and 78 or 70 SetAnchoredPosition(self.head_con, self.rank == 1 and 41.5 or 37.5, self.rank == 1 and 20.5 or 11.5) self.role_head_item:SetItemSize(size, size) SetSizeDeltaY(self.info_con, self.rank == 1 and 38 or 33) -- 更新数据 if self.data then local head_data = { vo = { role_id = self.data.role_id, turn = self.data.turn, picture_ver = self.data.picture_ver, picture = self.data.picture, profile_photo_id = self.data.profile_photo_id, level = self.data.level, dress_board_id = self.data.dress_id, empty_head = false, }, show_tip = true, } self.role_head_item:SetData(head_data) self.role_head_item:SetVisible(true) self.vipItem:SetData(self.data.vip_flag, self.data.sup_vip_type) self.name_tmp.text = self.data.name else self.role_head_item:SetVisible(false) self.vipItem:SetData(0, 0) self.name_tmp.text = "虚位以待" end local vip_size_x = self.data and self.data.vip_flag > 0 and 40 or 0 local total_len = self.name_tmp.preferredWidth + vip_size_x local x_offset = (self.info_con.sizeDelta.x - total_len) * 0.5 SetAnchoredPositionX(self.vip_con, x_offset) SetAnchoredPositionX(self.name, x_offset + vip_size_x) end function ExpDunWaveRankTopItem:__delete( ) if self.role_head_item then self.role_head_item:DeleteMe() self.role_head_item = nil end if self.vipItem then self.vipItem:DeleteMe() self.vipItem = nil end end