RankProgressView = RankProgressView or BaseClass(BaseView) local RankProgressView = RankProgressView function RankProgressView:__init() self.base_file = "rank" self.layout_file = "RankProgressView" self.layer_name = "Activity" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.hide_maincancas = true --是否隐藏主界面 self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.click_bg_toClose = true self.is_set_zdepth = true self.blur_activity_bg = true self.model = RankModel:getInstance() self.top_item_list = {} self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) -- self:OpenSuccess() end self.destroy_callback = function ( ) self:DestroySuccess() end end function RankProgressView:Open(rank_type) self.rank_type = rank_type BaseView.Open(self) end function RankProgressView:LoadSuccess() local nodes = { "bg:img", "close:obj", "content", } self:GetChildren(nodes) lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetRankBg("rank_progress_bg")) self.model:Fire(RankModel.REQUEST_CCMD_EVENT, 22111, self.rank_type) end function RankProgressView:AddEvent() local on_click = function ( click_obj ) if self.close_obj == click_obj then self:Close() end end AddClickEvent(self.close_obj, on_click) local function on_update_progress_view(rank_type) if self.is_loaded and self.rank_type == rank_type then self:UpdateView() end end self:BindEvent(self.model, RankModel.UPDATE_RANK_PROGRESS_VIEW, on_update_progress_view) end function RankProgressView:UpdateView() local top_five_data = {} local all_target_server_data = self.model:GetRankProgressData(self.rank_type) for i=1,5 do if all_target_server_data[i] then table.insert(top_five_data, all_target_server_data[i]) else local temp = {empty_data = true} table.insert(top_five_data, temp) end end for k,v in pairs(self.top_item_list) do v:SetVisible(false) end for i,v in ipairs(top_five_data) do local item = self.top_item_list[i] if not item then item = RankProgressItem.New(self.content) self.top_item_list[i] = item end item:SetVisible(true) item:SetData(v,i,self.rank_type) item:SetAnchoredPosition(2, -(i-1)*93-7) end end function RankProgressView:DestroySuccess( ) for i, v in ipairs(self.top_item_list) do v:DeleteMe() end self.top_item_list = {} end