--- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by aaa. --- DateTime: 2019/8/30 15:42 --- local RankInfoView = quick_class("RankInfoView") -- 头像对象管理 local _PlayerHeadList = {} function RankInfoView:ctor(parent, root) self.root = root self:InitComponent(root) self:BindEvent() end function RankInfoView:InitComponent(root) -- 我的排名 self.myRank = Util.GetGameObject(root, "myRankInfo/myRank"):GetComponent("Text") self.atkNum = Util.GetGameObject(root, "myRankInfo/atkNum"):GetComponent("Text") self.rankGrid = Util.GetGameObject(root, "viewRect") self.rankItem = Util.GetGameObject(root, "viewRect/RankInfoPre") local rootHight = self.rankGrid.transform.rect.height local width = self.rankGrid.transform.rect.width -- 设置循滚动组件 self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.rankGrid.transform, self.rankItem, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0,-10)) self.ScrollView.moveTween.MomentumAmount = 1 self.ScrollView.moveTween.Strength = 2 -- 是否请求过数据 self.isRequestData = false end function RankInfoView:BindEvent(root) end function RankInfoView:ReShowPanel() end function RankInfoView:OnShow() self.root:SetActive(true) RoomManager.RequestBloodyRank(function (msg) -- 设置个人信息 self:SetMyInfo(msg.myRank) -- 设置其他的排名信息 self:SetOtherInfo(msg.infos) end) end function RankInfoView:SetMyInfo(myRank) local str = "" if not myRank or myRank <= 0 then str = Language[10041] else str = tonumber(myRank) end self.myRank.text = str self.atkNum.text = FormationManager.GetFormationPower(FormationTypeDef.BLOODY_BATTLE_ATTACK) end function RankInfoView:SetOtherInfo(rankInfo) local rankFunc = function (index, item) self:RefeshData(item, rankInfo[index]) end self.ScrollView:SetData(rankInfo, rankFunc) self.ScrollView:SetIndex(1) end function RankInfoView:RefeshData(item, data) --需要设置的组件 local roleLv = Util.GetGameObject(item, "roleInfo/Lv"):GetComponent("Text") local roleName = Util.GetGameObject(item, "roleInfo/Name"):GetComponent("Text") local roleScore = Util.GetGameObject(item, "score"):GetComponent("Text") local serName = Util.GetGameObject(item, "nickName"):GetComponent("Text") local sortFrame = Util.GetGameObject(item, "sortImage"):GetComponent("Image") local rankNum = Util.GetGameObject(item, "sortImage/Text") local headRoot = Util.GetGameObject(item, "head") local nickName = Util.GetGameObject(item, "killNum"):GetComponent("Text") roleLv.text = data.level roleName.text = data.name roleScore.text = data.score nickName.text = MatchDataManager.GetNickNameByScore(data.score) serName.text = Language[10768] -- 排行头像相关的数据 sortFrame.sprite = SetRankNumFrame(data.rank) if data.rank > 3 then rankNum:SetActive(true) rankNum:GetComponent("Text").text = data.rank else rankNum:SetActive(false) end if not _PlayerHeadList[item] then _PlayerHeadList[item] = SubUIManager.Open(SubUIConfig.PlayerHeadView, headRoot.transform) end _PlayerHeadList[item]:Reset() _PlayerHeadList[item]:SetHead(data.head) _PlayerHeadList[item]:SetFrame(data.headFrame) _PlayerHeadList[item]:SetScale(Vector3.one * 0.9) _PlayerHeadList[item]:SetLayer(this.sortingOrder) _PlayerHeadList[item]:SetEffectScale(0.85) end function RankInfoView:OnHidePanel() self.root:SetActive(false) end function RankInfoView:OnDestroy() -- 头像回收 for _, playerHead in pairs(_PlayerHeadList) do playerHead:Recycle() end _PlayerHeadList = {} end return RankInfoView