源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

105 lines
2.5 KiB

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