----- 送神弹窗 ----- local this = {} --传入父脚本模块 local parent --传入特效层级 local sortingOrder=0 local heros=nil local confirmFunc=nil local currHeroId=0 local curPage = 1 local heroConfig=ConfigManager.GetConfig(ConfigName.HeroConfig) local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig) local artResourcesConfig =ConfigManager.GetConfig(ConfigName.ArtResourcesConfig) function this:InitComponent(gameObject) this.spLoader = SpriteLoader.New() this.titleText=Util.GetGameObject(gameObject,"TitleText"):GetComponent("Text") this.titleText.text="许愿神将" this.cancelBtn=Util.GetGameObject(gameObject,"CancelBtn") this.confirmBtn=Util.GetGameObject(gameObject,"ConfirmBtn") this.FourStarUpTip=Util.GetGameObject(gameObject,"tip"):GetComponent("Text") this.FourStarUpTip.text = "长按头像可查看神将详情" this.selectObj=Util.GetGameObject(gameObject,"choosed") this.prefab=Util.GetGameObject(gameObject,"item") --滚动条根节点 this.root = Util.GetGameObject(gameObject, "Root") this.preList={} local rootHight = this.root.transform.rect.height local width = this.root.transform.rect.width this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.root.transform, this.prefab,nil, Vector2.New(width, rootHight), 1, 5,Vector2.New(20,40)) this.ScrollView.moveTween.MomentumAmount = 1 this.ScrollView.moveTween.Strength = 2 this.ScrollView.elastic = false this.selectBar = Util.GetGameObject(gameObject,"selectBar") this.light = Util.GetGameObject(this.selectBar,"selectBtn") this.btnList = {} for i = 1, 4 do this.btnList[i] = Util.GetGameObject(this.selectBar,"btn"..i) end this.choosedList = {} end function this:BindEvent() Util.AddClick(this.cancelBtn,function() parent:ClosePanel() end) Util.AddClick(this.confirmBtn,function() if confirmFunc then confirmFunc(currHeroId) end parent:ClosePanel() end) for i = 1, 4 do Util.AddClick(this.btnList[i],function() if curPage ~= i then this:Refresh(i) end end) end end function this:AddListener() end function this:RemoveListener() end function this:OnShow(_parent,_args) heros = _args[1] currHeroId=_args[2] confirmFunc=_args[3] parent=_parent sortingOrder =_parent.sortingOrder local default = 1 if currHeroId and currHeroId ~= 0 then default = heroConfig[currHeroId].PropertyName end this:Refresh(default) end function this:Refresh(_page) curPage = _page this.light.transform:SetParent(this.btnList[_page].transform) this.light.transform.localPosition = Vector3.zero local heroDatas={} for i = 1, #heros do if _page == heroConfig[heros[i]].PropertyName then table.insert(heroDatas,heroConfig[heros[i]]) end end this.ScrollView:SetData(heroDatas, function(index, go) this.SingleHeroDataShow(go,heroDatas[index],index) end) end --英雄单个数据展示 function this.SingleHeroDataShow(go,_heroData,_index) local heroData = _heroData local _go = go _go.gameObject:SetActive(true) Util.GetGameObject(_go.transform, "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.Quality,heroData.Star)) Util.GetGameObject(_go.transform, "Text"):GetComponent("Text").text = SubString2(GetLanguageStrById(heroData.ReadingName),8) Util.GetGameObject(_go.transform, "icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(artResourcesConfig[_heroData.Icon].Name) Util.GetGameObject(_go.transform, "posIcon"):SetActive(false) Util.GetGameObject(_go.transform, "proIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName)) local starGrid = Util.GetGameObject(_go.transform, "star") local choosed = Util.GetGameObject(_go.transform, "choosed") this.choosedList[go] = choosed this.choosedList[go]:SetActive( _heroData.Id==currHeroId) SetHeroStars(this.spLoader, starGrid, heroData.Star,1,nil,-15) local cardclickBtn = Util.GetGameObject(_go.transform, "icon") Util.AddOnceClick(cardclickBtn, function() currHeroId=_heroData.Id for k,v in pairs(this.choosedList) do v:SetActive(false) end choosed:SetActive(true) end) Util.AddLongPressClick(cardclickBtn, function() UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroData.Id, heroData.Star) end, 0.5) end function this:OnClose() currHeroId=0 heros=nil end function this:OnDestroy() this.spLoader:Destroy() this.choosedList = {} this.btnList = {} end return this