local MineBag = class("MineBag", cc.UIView) local BAG_TYPE = 4 BAG_TYPE_NAME = { [81] = PLN.CLUB_NAME .. "背景", [82] = "大厅背景", [83] = "聊天气泡", [84] = "语音气泡", } function MineBag:ctor(selectType) MineBag.super.ctor(self); local ui = loadUI("res/ui/ui_dating/ui_minebag.ui") self.ui = ui self.selectType = selectType or STORE_TYPE.CHANGE_QYQBG self.proplist = nil self.pid = nil self.optype = 1 self:addChild(ui) self.First = true if app.serverConfigs.clientConfig and app.serverConfigs.clientConfig.prop then self.proplist = app.serverConfigs.clientConfig.prop else app.serverConfigs:requestClientConfig(function() self.proplist = app.serverConfigs.clientConfig.prop end) end end function MineBag:onEnter() MineBag.super.onEnter(self); self.ui.Items.Layout_goods_items:setVisible(false) self.ui.Items.Text_noContent:setVisible(false) self.ui.Items.ImageView_noGood:setVisible(false) self.ui.Items.Button_Close:registerClick(handler(self, self.onClickClose)) self.ui.Items.Button_goShop:setVisible(false) self.ui.Items.Button_goShop:registerClick(handler(self, self.onClickGoToShop)) self.ui.Items.Button_Store:registerClick(handler(self, self.onClickGoToShop)) self.ui.Items.ScrollView_Center:setVisible(false) self.ui.Items.ScrollView_Center:hideAllBar() self.ui.Items.ScrollView_left:hideAllBar() self.radioManager = import("luaScript.Tools.RadioManager"):new(); self.radioManager:setColorSwitch(false) self.ui.Items.ScrollView_left:getInnerContainer():setAutoSize(true) self.ui.Items.ScrollView_left:removeAllChildren() for k,v in pairsByKeys(BAG_TYPE_NAME) do local ui = self.ui.Items.CheckBox_left_item:getCopied() ui.Items = getUIItems(ui) BAG_TYPE_NAME[k] = string.gsub(BAG_TYPE_NAME[k],"茶馆", "海选赛") ui.Items.Text_Nor:setText(BAG_TYPE_NAME[k]) ui.Items.Text_Sel:setText(BAG_TYPE_NAME[k]) ui.Items.Text_Sel:setVisible(false) self.ui.Items.ScrollView_left:addChild(ui) self.radioManager:addItem(ui, k) end self.radioManager:setCallback(handler(self, self.onClickItem)) self.radioManager:setDefault(self.selectType) self.ui.Items.ScrollView_left:hideAllBar() self.ui.Items.ScrollView_left:jumpToTopOnSizeChanged() app.php:requestGetBagInfo() self:bindEvent(app , "onGetBagInfoResponse" , handler(self , self.updateView)); --操作成功 self:bindEvent(app , "onBagOperateResponse" , handler(self , self.onBagOperateResponse)); self:bindEvent(app.phpShop , "exchangeCoinSuccess" , handler(self , self.duihuanShop)); if app.php.mypropdata then for k,v in pairs(app.php.mypropdata) do if v.prop_id and v.prop_id >= 200 and v.prop_id < 300 then self.pid = v.prop_id end end end self:updateView() end function MineBag:onBagOperateResponse() app.php:requestGetBagInfo() --刷新背包数据 if self.optype == 1 then showTooltip("装扮成功") else showTooltip("卸下成功") end end function MineBag:duihuanShop() app.php:requestGetBagInfo() --刷新背包数据 end function MineBag:onClickItem(value,checkNode) if not self.First then playBtnEffect() end self.First = false if self.selectItem and not tolua.isnull(self.selectItem) then -- playBtnEffect() self.selectItem.Items.Text_Nor:setVisible(true) self.selectItem.Items.Text_Sel:setVisible(false) end self.selectItem = checkNode if self.selectItem then self.selectItem.Items.Text_Nor:setVisible(false) self.selectItem.Items.Text_Sel:setVisible(true) end if self.selectType ~= value then self.selectType = value self:updateView() end end function MineBag:updateView() local uiScrollView = self.ui.Items.ScrollView_Center; uiScrollView:hideAllBar(); uiScrollView:removeAllChildren() uiScrollView:getInnerContainer():setAutoSize(false) if self.selectType == STORE_TYPE.CHANGE_QYQBG then self.ui.Items.Text:setVisible(true) else self.ui.Items.Text:setVisible(false) end self:onDownLoadImageByType(self.selectType) if not app.php.baginfodata or not self.proplist then return end local baginfo = {}; for k,v in pairs(app.php.baginfodata) do if v.prop_type == self.selectType then table.insert(baginfo,v) end end self.ui.Items.Text_noContent:setVisible(false) self.ui.Items.ImageView_noGood:setVisible(false) self.ui.Items.Button_goShop:setVisible(false) if not baginfo or table.nums(baginfo) <= 0 then self.ui.Items.Text_noContent:setVisible(true) self.ui.Items.ImageView_noGood:setVisible(true) self.ui.Items.Button_goShop:setVisible(true) return end self.ui.Items.Layout_goods_items:setVisible(true) self.ui.Items.ScrollView_Center:setVisible(true) for i = 1, #baginfo do local item = self:createItem(baginfo[i]) uiScrollView:addChild(item); end uiScrollView:jumpToTopOnSizeChanged() end function MineBag:createItem(bagdata) local uiTemplate = self.ui.Items.Layout_goods_items local uiItem = uiTemplate:getCopied() uiItem.Items = getUIItems(uiItem) local propdata = self.proplist[tostring(bagdata.prop_id)] local endtime = bagdata.endtime local difftime = endtime - os.time() local str = string.format("%d天%.2d时%.2d分", math.floor(difftime/(60*60*24)), math.floor((difftime/(60*60))%24),math.floor((difftime/60)%60)) uiItem.Items.Text_time_1:setText(str) local function onUpdateImage(event) if tolua.isnull(uiItem) then return end local rechargeId = bagdata.prop_id if not event or event.id ~= rechargeId then return end uiItem.Items.ImageView_goods_icon:setVisible(false) local rechargeConfig = bagdata if not rechargeConfig then return end local iconUrl = convertIconUrl(propdata.thumb) local iconFile = getImageNameFromUrl(iconUrl) local texture = loadTextureFromFile(iconFile) if texture then local w = texture:getWidth(); local sz = uiItem.Items.ImageView_goods_icon:getContentSize() uiItem.Items.ImageView_goods_icon:setVisible(true) uiItem.Items.ImageView_goods_icon:setTexture2(texture); end end -- 监听下载事件,本充值项的图片下载成功时更新图片 uiItem:bindEvent(app, "downloadImageSuccessed", onUpdateImage); onUpdateImage({id = bagdata.prop_id}); uiItem.Items.Text_item_title:setText(tostring(propdata.name)) uiItem.Items.Button_xiexia:registerClick(function () playBtnEffect() if self.selectType == STORE_TYPE.CHANGE_QYQBG then showConfirmDialog(string.format("请在%s【设置】-【%s背景】中使用。", PLN.CLUB_NAME, PLN.CLUB_NAME)) else self.optype = 2 app.php:requestBagOperate(bagdata.prop_id,2) uiItem.Items.Button_shiyong:setVisible(true) uiItem.Items.Button_xiexia:setVisible(false) end end) uiItem.Items.Button_shiyong:registerClick(function () playBtnEffect() if self.selectType == STORE_TYPE.CHANGE_QYQBG then showConfirmDialog(string.format("请在%s【设置】-【%s背景】中使用。", PLN.CLUB_NAME, PLN.CLUB_NAME)) else self.optype = 1 app.php:requestBagOperate(bagdata.prop_id,1) uiItem.Items.Button_shiyong:setVisible(false) uiItem.Items.Button_xiexia:setVisible(true) end end) uiItem.Items.Button_xufei:registerClick(function() playBtnEffect() local view = import("luaScript.Views.Recharge.StoreDuiHuanView"):new(self.selectType,bagdata.prop_id,1); view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end) if table.nums(bagdata.usejson) > 0 then uiItem.Items.Button_xiexia:setVisible(true) uiItem.Items.Button_shiyong:setVisible(false) uiItem.Items.ImageView_Usering:setVisible(true) else uiItem.Items.Button_xiexia:setVisible(false) uiItem.Items.Button_shiyong:setVisible(true) uiItem.Items.ImageView_Usering:setVisible(false) end return uiItem end -- 关闭设置界面 function MineBag:onClickClose() playBtnCloseEffect() self:removeFromParent() end --去商城 function MineBag:onClickGoToShop() playBtnEffect() local view = import("luaScript.Views.Main.RechargeView"):new(self.selectType,self.pid) view:setAnchorPoint(cc.p(0.5,0.5)) app:showWaitDialog(view) self:removeFromParent() end --点击某个类型才下载某个类型的图片 function MineBag:onDownLoadImageByType(selecttype) if not app.php.baginfodata or not self.proplist then return end for k,v in pairs(app.php.baginfodata) do if tonumber(selecttype) == v.prop_type then local prop = self.proplist[k] if (prop.thumb and prop.thumb ~= "") then local fileName = getImageNameFromUrl(prop.thumb) getImageFromUrlWithTime(prop.thumb, fileName, nil,function() -- 通知下载完成 app:dispatchEvent({name = "downloadImageSuccessed", id = v.prop_id}); end) end end end end return MineBag;