SupremeVipShopView = SupremeVipShopView or BaseClass(BaseItem) local SupremeVipShopView = SupremeVipShopView function SupremeVipShopView:__init() self.base_file = "supremeVip" self.layout_file = "SupremeVipShopView" self.model = SupremeVipModel:getInstance() self:Load() end function SupremeVipShopView:Load_callback() self.nodes = { "starDiamondBtn:obj", "starIcon:img", "des1Img:img", "ScrollView", "ScrollView/Viewport/Content", "starDiamondNum:tmp", "shopBg:img", } self:GetChildren(self.nodes) -- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45104)--查询商城限购数据 lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_7_pointfilter"),false,nil) lua_resM:setOutsideImageSprite(self,self.shopBg_img,GameResPath.GetSupremeVipIcon("supremeVip_right_bg_long"),false,nil) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function SupremeVipShopView:AddEvents( ) local on_click = function ( click_obj ) if self.starDiamondBtn_obj == click_obj then OpenFun.Open(450,1) end end AddClickEvent(self.starDiamondBtn_obj, on_click)--获得星钻 --查询商城限购数据后,刷新商城item展示 local function update_shop_con() self:UpdateShopCon() end self:BindEvent(self.model, SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_CON,update_shop_con) --星钻数量变更 local function update_star_diamond_num() self:UpdateStarDiamondNum() end self:BindEvent(self.model, SupremeVipConst.REFRESH_STAR_DIAMOND_NUM,update_star_diamond_num) end function SupremeVipShopView:UpdateView( ) self:UpdateStarDiamondNum() self:UpdateShopCon() end --刷新星钻数 function SupremeVipShopView:UpdateStarDiamondNum( ) self.starDiamondNum_tmp.text = self.model.star_gold end --刷新商城列表 function SupremeVipShopView:UpdateShopCon( ) local shop_cfg = self.model:GetSupremeVipShopCfg() -- if not self.item_list_com then -- self.item_list_com = self:AddUIComponent(UI.ItemListCreator) -- end -- local info = { -- data_list = shop_cfg, -- item_con = self.Content, -- item_class = SupremeVipShopItem, -- item_width = SupremeVipShopItem.Width, -- item_height = SupremeVipShopItem.Height, -- space_x = 14, -- space_y = -5, -- start_x = 2, -- start_y = 7, -- scroll_view = self.ScrollView, -- -- create_frequency = 0.01, -- reuse_item_num = 999, -- on_update_item = function(item, i, v) -- item:SetData(v,i) -- end, -- } -- self.item_list_com:UpdateItems(info) self.item_list = self.item_list or {} for k,v in pairs(self.item_list) do v:SetVisible(false) end local offset_x = 14+146 local offset_y = -5+181 local show_col = 4 for i,v in ipairs(shop_cfg) do local item = self.item_list[i] if not item then item = SupremeVipShopItem.New(self.Content) self.item_list[i] = item end item:SetVisible(true) item:SetAnchoredPosition(2+offset_x*((i-1)%show_col), 7-offset_y*math.floor((i-1)/show_col)) item:SetData(v,i) end SetSizeDeltaY(self.Content,math.ceil(#shop_cfg/show_col)*offset_y+8) end function SupremeVipShopView:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function SupremeVipShopView:__delete( ) for k,v in pairs(self.item_list) do v:DeleteMe() v = nil end self.item_list = {} end