local ExChangePage = {} local GlobalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity) function ExChangePage:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = ExChangePage }) return b end --初始化组件(用于子类重写) function ExChangePage:InitComponent() self.spLoader = SpriteLoader.New() self.exChangeInfoGrid = {}--限时兑换内容 self.heroConfig = {} self.itemList = {} --itemView优化 self.cursortingOrder = 0 self.timeTextExChangeGo = Util.GetGameObject(self.gameObject, "timeText") self.timeTextExChange = Util.GetGameObject(self.gameObject, "timeText"):GetComponent("Text") self.exChangeRewardIcon = Util.GetGameObject(self.gameObject, "downbg1/info/itemViewParent/icon"):GetComponent("Image") self.exChangeRewardParent = Util.GetGameObject(self.gameObject, "downbg2/itemRewardParent") self.exChangeBuyNum = Util.GetGameObject(self.gameObject, "downbg2/buyInfo/buyNum"):GetComponent("Text") self.exChangeBuyIcon = Util.GetGameObject(self.gameObject, "downbg2/buyInfo/icon"):GetComponent("Image") self.exChangeBuyBtn = Util.GetGameObject(self.gameObject, "downbg2/buyInfo/addBtn") for i = 1, 4 do self.exChangeInfoGrid[i] = Util.GetGameObject(self.gameObject, "downbg1/info/infoTextGrid/infoText ("..i..")") end self.exChangeGoBtn = Util.GetGameObject(self.gameObject, "downbg2/goBtn") self.goBtnRedpot = Util.GetGameObject(self.gameObject, "downbg2/goBtn/redpot") self.click = Util.GetGameObject(self.gameObject, "leftUpGO/click") self.live2dRoot = Util.GetGameObject(self.gameObject, "bg/live") self.proImage = Util.GetGameObject(self.gameObject, "leftUpGO/proImage"):GetComponent("Image") self.heroName = Util.GetGameObject(self.gameObject, "leftUpGO/heroName"):GetComponent("Text") self.liveNode=nil self.liveName=nil self.zhenqibaogeBtn = Util.GetGameObject(self.gameObject,"rightUp/zhenqibaogeBtn") self.zqbgEffect = Util.GetGameObject(self.zhenqibaogeBtn,"Fx_Circle 1") end --绑定事件(用于子类重写) function ExChangePage:BindEvent() Util.AddOnceClick(self.zhenqibaogeBtn, function() JumpManager.GoJump(40011) end) Util.AddClick(self.click, function() UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, self.heroConfig.Id, self.heroConfig.Star) end) -- 前往兑换红点 BindRedPointObject(RedPointType.LimitExchange_GoExchange, self.goBtnRedpot) end --添加事件监听(用于子类重写) function ExChangePage:AddListener() end --移除事件监听(用于子类重写) function ExChangePage:RemoveListener() end --界面打开时调用(用于子类重写) function ExChangePage:OnOpen(_activityConfig,_index,parent) self.actConfig = _activityConfig self.pageIndex = _index self.parent = parent end function ExChangePage:OnSortingOrderChange() end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function ExChangePage:OnShow(_sortingOrder) self.gameObject:SetActive(true) self.cursortingOrder = _sortingOrder or self.cursortingOrder Util.SetParticleSortLayer(self.zqbgEffect, self.cursortingOrder + 1) local id = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LimitExchange) if id and id > 0 then if GlobalActivity[id].ShowArt == ActivityTypeDef.DynamicAct then self.zhenqibaogeBtn.gameObject:SetActive(true) else self.zhenqibaogeBtn.gameObject:SetActive(false) end end self:ExChangeShow() end function ExChangePage:OnSortingOrderChange(_cursortingOrder) self.cursortingOrder = _cursortingOrder for i, v in pairs(self.itemList) do v:SetEffectLayer(self.cursortingOrder) end end --限时兑换活动 function ExChangePage:ExChangeShow() local LimitExchange = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.LimitExchange) if LimitExchange then local str = Language[10573] -- Log("LimitExchange "..LimitExchange.endTime) PatFaceManager.RemainTimeDown(self.timeTextExChangeGo,self.timeTextExChange,LimitExchange.endTime - GetTimeStamp(),str) else self.timeTextExChangeGo:SetActive(false) end local exChangeConFig = ConfigManager.GetConfigDataByKey(ConfigName.ExchangeActivityConfig, "ActivityId", LimitExchange.activityId) self.heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig,exChangeConFig.AwardHeroId) if self.liveNode then poolManager:UnLoadLive(self.liveName, self.liveNode) self.liveName=nil end self.liveName = GetResourcePath(self.heroConfig.Live) self.liveNode = poolManager:LoadLive(self.liveName, self.live2dRoot.transform, Vector3.one * exChangeConFig.HeroShowScale, Vector3.New(exChangeConFig.HeroShowLocation[1], exChangeConFig.HeroShowLocation[2],0)) SetHEeroLiveToward(self.liveNode,self.heroConfig.Toward) self.proImage.sprite =self.spLoader:LoadSprite(GetProStrImageByProNum(self.heroConfig.PropertyName)) self.heroName.text =GetLanguageStrById(self.heroConfig.ReadingName) SetTextVerTial(self.heroName,Vector3.New(129.9,3.7,0)) --Util.ClearChild(self.exChangeRewardParent.transform) for i = 1, #exChangeConFig.ShowItem do local rewardInfo = {exChangeConFig.ShowItem[i],0} if self.itemList[i] then self.itemList[i]:OnOpen(false,rewardInfo,1.1,false,false,false,self.cursortingOrder) else self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.exChangeRewardParent.transform) self.itemList[i]:OnOpen(false,rewardInfo,1.1,false,false,false,self.cursortingOrder) end end local itemConFig = ConfigManager.GetConfigData(ConfigName.ItemConfig,exChangeConFig.ActivityItem) self.exChangeRewardIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConFig.ResourceID)) self.exChangeBuyNum.text = PrintWanNum(BagManager.GetItemCountById(exChangeConFig.ActivityItem)) self.exChangeBuyIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConFig.ResourceID)) local descTabs = string.split( GetLanguageStrById(exChangeConFig.Desc),"#") for i = 1, #self.exChangeInfoGrid do if #descTabs >= i then self.exChangeInfoGrid[i]:SetActive(true) self.exChangeInfoGrid[i]:GetComponent("Text").text = "·"..descTabs[i] else self.exChangeInfoGrid[i]:SetActive(false) end end Util.AddOnceClick(self.exChangeBuyBtn, function() JumpManager.GoJump(exChangeConFig.ItemJump) end) Util.AddOnceClick(self.exChangeGoBtn, function() local exChangeConFig = ConfigManager.GetConfigData(ConfigName.ExchangeActivityConfig,1) if not ShopManager.IsActive(exChangeConFig.ShopId) then PopupTipPanel.ShowTip(Language[10574]) return end UIManager.OpenPanel(UIName.MainShopPanel,exChangeConFig.ShopId) -- 关闭红点儿显示 ActivityGiftManager.SetExchangeRedStatus(false) CheckRedPointStatus(RedPointType.LimitExchange_GoExchange) end) end function ExChangePage:OnClose() self.gameObject:SetActive(false) if self.liveNode then poolManager:UnLoadLive(self.liveName, self.liveNode) self.liveNode = nil self.liveName = nil end end function ExChangePage:OnDestroy() self.spLoader:Destroy() for k,v in pairs(self.itemList) do SubUIManager.Close(v) end self.itemList = {} ClearRedPointObject(RedPointType.LimitExchange_GoExchange, self.goBtnRedpot) end return ExChangePage