PetVoteView = PetVoteView or BaseClass(BaseView) local PetVoteView = PetVoteView function PetVoteView:__init() self.base_file = "pet" self.layout_file = "PetVoteView" self.layer_name = "Activity" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.hide_maincancas = false --是否隐藏主界面 self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏\ self.is_set_zdepth = true self.blur_activity_bg = true -- self.use_show_anim = true -- self.use_hide_anim = true self.model = PetModel:getInstance() 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 PetVoteView:Open(index) self.current_index = index or 1 BaseView.Open(self) end function PetVoteView:LoadSuccess() local nodes = { "bg:raw", "mainTitle:img", "rankBtn:obj", "shareBtn:obj", "close:obj", "voteTimes:tmp", "rankBtn/rankRewardBtn:obj", "ScrollView", "ScrollView/Viewport/Content", "tips2:tmp", "tips1:tmp", "endTime:tmp", "empty/image:raw", "empty/girl:raw", "empty:obj", } self:GetChildren(nodes) self.tips1_tmp.text = "每日4:00更新统计全服宠物战力排行前8位的宠物 <#fdffc2>(4日后开启跨服模式)" self.tips2_tmp.text = "上榜宠物主人可获得排行大礼,其他玩家每日点赞可获得点赞奖励" lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("pet_vote_bg")) lua_resM:setOutsideImageSprite(self, self.mainTitle_img, GameResPath.GetPetImage("pet_vote_slogan")) lua_resM:setOutsideRawImage(self, self.girl_raw, GameResPath.GetRoleBg("com_empty_dialogueGirl1_590x560"), false) lua_resM:setOutsideRawImage(self, self.image_raw, GameResPath.GetViewBigBg("com_empty_bg1")) end function PetVoteView:AddEvent() local on_click = function ( click_obj ) if self.rankBtn_obj == click_obj then if self.model:CanVotePetRank() then self.model:Fire(PetConst.OPEN_PET_SUPPORT_RANK_VIEW) else Message.show("上榜宠物不足,请耐心等候哦!") end elseif self.shareBtn_obj == click_obj then local content = "快来pick人气宠物吧![点击前往]" ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_WORLD,content,nil,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM) Message.show("已分享至世界频道!","success") elseif self.close_obj == click_obj then self:Close() end end AddClickEvent(self.rankBtn_obj, on_click) AddClickEvent(self.shareBtn_obj, on_click) AddClickEvent(self.close_obj, on_click) local function onUpdateVoteView() self:UpdateView() end self:BindEvent(self.model, PetConst.UPDATE_VOTE_VIEW, onUpdateVoteView) local function onUpdateVoteTimes() self:UpdateLeftVoteTimes() end self:BindEvent(self.model, PetConst.UPDATE_LEFT_VOTE_TIMES, onUpdateVoteTimes) --红点更新 local function on_ans_update_red_dot(tab_id) if not self.is_loaded then return end if tab_id == PetConst.RED_DOT_TYPE.Reward then self:RefreshRed() end end self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, on_ans_update_red_dot) end function PetVoteView:RefreshRed( ) local reward_vote = self.model:GetPetRewardRed() self.rankRewardBtn_obj:SetActive(reward_vote) end function PetVoteView:OpenSuccess() -- self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16312) self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16309) end function PetVoteView:UpdateView( ) local time_four = TimeUtil:GetToDayNHourStr(4) if TimeUtil:getServerTime() <= time_four then--还没到今天4点,显示昨天4点结算 self.endTime_tmp.text = string.format("本次统计截止 <#fdffc2>%s 凌晨4:00",TimeUtil:timeConversion(TimeUtil:getServerTime()-86400,"mm月dd日")) else--超过了就是今日的4点结算 self.endTime_tmp.text = string.format("本次统计截止 <#fdffc2>%s 凌晨4:00",TimeUtil:timeConversion(TimeUtil:getServerTime(),"mm月dd日")) end local pet_vote_data = self.model:GetRankData() -- if not pet_vote_data or #pet_vote_data == 0 then if not self.model:CanVotePetRank() then self.empty_obj:SetActive(true) return else self.empty_obj:SetActive(false) end if not self.item_list_com then self.item_list_com = self:AddUIComponent(UI.ItemListCreator) end local info = { data_list = pet_vote_data, item_con = self.Content, item_class = PetVoteItem, item_width = 176, item_height = 235, space_x = 7, space_y = 16, start_x = 5, start_y = -4, scroll_view = self.ScrollView, -- create_frequency = 0.01, on_update_item = function(item, i, v) item:SetData(v,i) end, } self.item_list_com:UpdateItems(info) -- local pet_vote_data_1 = self.model:GetPetVoteDataByRare(1) -- local pet_vote_data_2 = self.model:GetPetVoteDataByRare(2) -- local pet_vote_data_3 = self.model:GetPetVoteDataByRare(3) -- if not self.item_list_com_1 then -- self.item_list_com_1 = self:AddUIComponent(UI.ItemListCreator) -- end -- local info = { -- data_list = pet_vote_data_1, -- item_con = self.Content_1, -- item_class = PetVoteItem, -- item_height = 90, -- space_y = -3, -- start_x = 0, -- start_y = 2, -- scroll_view = self.ScrollView_2, -- create_frequency = 0.01, -- on_update_item = function(item, i, v) -- item:SetData(v,i,1) -- end, -- } -- self.item_list_com_1:UpdateItems(info) -- if not self.item_list_com_2 then -- self.item_list_com_2 = self:AddUIComponent(UI.ItemListCreator) -- end -- local info = { -- data_list = pet_vote_data_2, -- item_con = self.Content_2, -- item_class = PetVoteItem, -- item_height = 90, -- space_y = -3, -- start_x = 0, -- start_y = 2, -- scroll_view = self.ScrollView_2, -- create_frequency = 0.01, -- on_update_item = function(item, i, v) -- item:SetData(v,i,2) -- end, -- } -- self.item_list_com_2:UpdateItems(info) -- if not self.item_list_com_3 then -- self.item_list_com_3 = self:AddUIComponent(UI.ItemListCreator) -- end -- local info = { -- data_list = pet_vote_data_3, -- item_con = self.Content_3, -- item_class = PetVoteItem, -- item_height = 90, -- space_y = -3, -- start_x = 0, -- start_y = 2, -- scroll_view = self.ScrollView_3, -- create_frequency = 0.01, -- on_update_item = function(item, i, v) -- item:SetData(v,i,3) -- end, -- } -- self.item_list_com_3:UpdateItems(info) self:RefreshRed() end function PetVoteView:UpdateLeftVoteTimes( ) local left_vote_times = self.model:GetMyLeftVoteTimes() local str_color = left_vote_times > 0 and ColorUtil.GREEN_TIPS or ColorUtil.RED_DARK self.voteTimes_tmp.text = string.format("今日剩余点赞次数:<%s>%s", str_color, left_vote_times) end function PetVoteView:DestroySuccess( ) end