miduo_client/Assets/ManagedResources/~Lua/Modules/Power/GiveMePowerPanel.lua

636 lines
25 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

--- 界面逻辑
require("Base/BasePanel")
local GiveMePowerPanel = Inherit(BasePanel)
local this = GiveMePowerPanel
--- 界面专用对象池
local TempPool = {}
function TempPool:Init()
if not self.MomNode then
self.MomNode = {}
self.NodeList = {}
self.UsedIndex = {}
end
end
function TempPool:Register(type, node)
self.MomNode[type] = node
end
function TempPool:GetNode(type, parent)
if not type or not parent then
Log("参数错误")
return
end
if not self.NodeList[type] then
self.NodeList[type] = {}
self.UsedIndex[type] = 0
end
if self.UsedIndex[type] >= #self.NodeList[type] then
local mom = self.MomNode[type]
if not mom then
Log("未找到母体")
return
end
self.UsedIndex[type] = self.UsedIndex[type] + 1
local node = newObjToParent(mom, parent)
table.insert(self.NodeList[type], node)
node.transform.localPosition = Vector3.New(0 ,0, 0)
return node
end
self.UsedIndex[type] = self.UsedIndex[type] + 1
local node = self.NodeList[type][self.UsedIndex[type]]
node.transform:SetParent(parent.transform)
node.transform.localPosition = Vector3.New(0 ,0, 0)
node:SetActive(true)
return node
end
function TempPool:Recycle(type)
local nodeList = self.NodeList[type] or {}
for _, node in ipairs(nodeList) do
node:SetActive(false)
end
self.UsedIndex[type] = 0
end
function TempPool:RecycleAll()
for type, _ in pairs(self.NodeList) do
self:Recycle(type)
end
end
function TempPool:Destroy()
self.MomNode = {}
self.NodeList = {}
self.UsedIndex = {}
end
-- 按钮开闭状态改变
local _BtnStatus = {
open = {img = "Btn_hz_cheng_01", text = Language[11631], textColor = Color.New(132/255,81/255,62/255,1)},
close = {img = "Btn_hz_lan_01", text = Language[11632], textColor = Color.New(139/255,104/255,11/255,1)}
}
local function _SetBtnStatus(btn, status)
local status = _BtnStatus[status]
if not status then return end
btn:GetComponent("Image").sprite = this.spLoader:LoadSprite(status.img)
local txt = Util.GetGameObject(btn, "Text"):GetComponent("Text")
txt.text = status.text
txt.color = status.textColor
end
-- Tab管理器
local TabBox = require("Modules/Common/TabBox")
local _TabSprite = { default = "r_qrkh_anniu_2", select = "r_qrkh_anniu_1" }
local _TabFontColor = { default = Color.New(181 / 255, 164 / 255, 129 / 255, 1),
select = Color.New(253 / 255, 244 / 255, 214 / 255, 1) }
local _TabData = {
[1] = { name = Language[11633] },
[2] = { name = Language[11634] },
[3] = { name = Language[11635] },
[4] = { name = Language[11636] },
}
-- 评分进度条
local _HeroGradeProgress = {}
--初始化组件(用于子类重写)
function GiveMePowerPanel:InitComponent()
this.spLoader = SpriteLoader.New()
this.btnBack = Util.GetGameObject(this.transform, "btnBack")
this.tabbox = Util.GetGameObject(this.transform, "tabbox")
this.heroPanel = Util.GetGameObject(this.transform, "content/hero")
this.forceValue = Util.GetGameObject(this.heroPanel, "powerBtn/value"):GetComponent("Text")
Util.GetGameObject(this.gameObject, "powerBtn"):GetComponent("Image").sprite = this.spLoader:LoadSprite("t_tongyong-zhanli_zh")
this.groupBox = Util.GetGameObject(this.heroPanel, "demons")
this.heroChoose = Util.GetGameObject(this.heroPanel, "demons/choose")
this.btnMyGroup = Util.GetGameObject(this.heroPanel, "orggroup")
this.btnAddHero = {}
this.groupBox = {}
for i = 1, 6 do
this.btnAddHero[i] = Util.GetGameObject(this.heroPanel, "demons/add"..i)
this.groupBox[i] = Util.GetGameObject(this.heroPanel, "demons/item"..i)
end
this.curHeroName = Util.GetGameObject(this.heroPanel, "curHero/name"):GetComponent("Text")
this.curHeroProgress = Util.GetGameObject(this.heroPanel, "curHero/progress"):GetComponent("Slider")
this.curHeroGrade = Util.GetGameObject(this.heroPanel, "curHero/progress/Text"):GetComponent("Text")
this.heroScrollRoot = Util.GetGameObject(this.heroPanel, "scrollRoot")
this.heroScrollItem = Util.GetGameObject(this.heroPanel, "scrollRoot/item")
this.otherPanel = Util.GetGameObject(this.transform, "content/other")
this.resItem1 = Util.GetGameObject(this.otherPanel, "ResItem1")
this.resItem2 = Util.GetGameObject(this.otherPanel, "ResItem2")
this.rmdItem = Util.GetGameObject(this.otherPanel, "rmdItem")
this.qaItem1 = Util.GetGameObject(this.otherPanel, "qaItem1")
this.qaItem2 = Util.GetGameObject(this.otherPanel, "qaItem2")
this.scrollRoot = Util.GetGameObject(this.otherPanel, "scroll")
this.UpView = SubUIManager.Open(SubUIConfig.UpView, this.transform, { showType = UpViewOpenType.ShowLeft })
end
--绑定事件(用于子类重写)
function GiveMePowerPanel:BindEvent()
Util.AddClick(this.btnBack, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
this:ClosePanel()
end)
Util.AddClick(this.btnMyGroup, function()
--UIManager.OpenPanel(UIName.FormationPanel, FORMATION_TYPE.MAIN)
--JumpManager.GoJump(1013)
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.SAVE_FORMATION)
end)
for i = 1, 6 do
Util.AddOnceClick(this.btnAddHero[i], function()
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.SAVE_FORMATION)
end)
end
-- 初始化对象池
TempPool:Init()
--TempPool:Register("res1", this.resItem1)
TempPool:Register("res2", this.resItem2)
TempPool:Register("rmd", this.rmdItem)
--TempPool:Register("qa1", this.qaItem1)
TempPool:Register("qa2", this.qaItem2)
end
-- tab节点显示自定义
function this.TabAdapter(tab, index, status)
local tabLab = Util.GetGameObject(tab, "name")
tab:GetComponent("Image").sprite = this.spLoader:LoadSprite(_TabSprite[status])
tabLab:GetComponent("Text").text = _TabData[index].name
tabLab:GetComponent("Text").color = _TabFontColor[status]
end
-- tab改变回调事件
function this.OnTabChange(index, lastIndex)
-- 设置显示
this._CurIndex = index
this.heroPanel:SetActive(index == 1)
this.otherPanel:SetActive(index ~= 1)
if index == 1 then
this.RefreshHeroPanelShow()
elseif index ~= 1 then
this.RefreshOtherPanelShow(index)
end
end
--- 刷新我要变强界面
-- 刷新英雄列表显示
function this.RefreshHeroPanelShow()
--
-- local power = 0
local formationData = FormationManager.GetFormationByID(FormationManager.curFormationIndex)
for i = 1, 6 do
this.groupBox[i]:SetActive(false)
this.btnAddHero[i]:SetActive(true)
end
for _, hero in pairs(formationData.teamHeroInfos) do
local pos = hero.position
this.groupBox[pos]:SetActive(true)
this.btnAddHero[pos]:SetActive(false)
local heroDId = hero.heroId
-- local allEquipAddProVal = HeroManager.CalculateHeroAllProValList(1, heroDId, false)
-- power = power + allEquipAddProVal[HeroProType.WarPower]
local heroData = HeroManager.GetSingleHeroData(heroDId)
this.SingleHeroDataShow(this.groupBox[pos], heroData, pos)
if not this._CurHeroIndex or this._CurHeroIndex > pos then
this.ChooseHero(this.groupBox[pos], heroData, pos)
end
end
this.forceValue.text = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)--power
end
-- 刷新成长选项
function this.RefreshHeroGrowList()
-- 刷新列表显示
if not this.HeroScrollView then
local height = this.heroScrollRoot.transform.rect.height
local width = this.heroScrollRoot.transform.rect.width
this.HeroScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.heroScrollRoot.transform,
this.heroScrollItem, nil, Vector2.New(width, height), 1, 1, Vector2.New(0, 10))
this.HeroScrollView.moveTween.Strength = 1
end
-- 设置我要变强界面数据显示
local _HeroStrongerData = UKnowNothingToThePowerManager.GetHeroPowerList(this.CurHeroTId)
this.HeroScrollView:SetData(_HeroStrongerData, function(index, go)
local data = _HeroStrongerData[index]
local title = Util.GetGameObject(go, "content/title"):GetComponent("Text")
local content = Util.GetGameObject(go, "content/content"):GetComponent("Text")
local progress = Util.GetGameObject(go, "content/progress"):GetComponent("Slider")
local progressText = Util.GetGameObject(go, "content/progress/Text"):GetComponent("Text")
local btnGo = Util.GetGameObject(go, "content/dealBtn")
title.text = GetLanguageStrById(data.DescFirst)
content.text = GetLanguageStrById(data.DescSecond)
local dId = data.Id
_HeroGradeProgress[go] = {
id = dId,
progress = progress,
progressText = progressText
}
local _HeroGrade = UKnowNothingToThePowerManager.GetHeroGrade(this.CurHeroDId)
local value = 0
local str = "0/0"
if _HeroGrade and _HeroGrade[dId] then
local curScore = _HeroGrade[dId].curScore
local maxScore = _HeroGrade[dId].maxScore
value = curScore/maxScore
str = string.format("%d/%d", curScore, maxScore)
end
progress.gameObject:SetActive(data.Control == 1)
progress.value = value
progressText.text = str
btnGo:SetActive(data.Jump ~= 0)
Util.AddOnceClick(btnGo, function()
if data.Jump < 0 then
local heroData = HeroManager.GetSingleHeroData(this.CurHeroDId)
local openPanle = UIManager.OpenPanel(UIName.RoleInfoPanel, heroData, HeroManager.GetAllHeroDatas(),true)
if openPanle then
openPanle.ShowGuideGo(data.Jump)
end
elseif data.Jump > 0 then
JumpManager.GoJump(data.Jump)
end
end)
end)
this.HeroScrollView:SetIndex(1)
end
-- 节点数据匹配
function this.SingleHeroDataShow(go, heroData, index)
Util.GetGameObject(go, "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.heroConfig.Quality, heroData.star))
Util.GetGameObject(go, "lv/Text"):GetComponent("Text").text = heroData.lv
Util.GetGameObject(go, "icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(heroData.icon)
Util.GetGameObject(go, "posIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(heroData.professionIcon)
Util.GetGameObject(go, "proIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(heroData.changeProId))
Util.GetGameObject(go, "heroStage"):SetActive(false)
--Util.GetGameObject(go, "heroStage"):GetComponent("Image").sprite = this.spLoader:LoadSprite(HeroStageSprite[heroData.heroConfig.HeroStage])
local starGrid = Util.GetGameObject(go, "star")
local star,starType = heroData.GetStar(1)
SetHeroStars(this.spLoader, starGrid, star,starType)
Util.SetParticleSortLayer(starGrid,this.sortingOrder + 1)
-- Click On
Util.AddOnceClick(go, function()
this.ChooseHero(go, heroData, index)
if this.HeroScrollView then
this.HeroScrollView:SetIndex(1)
end
end)
Util.AddLongPressClick(go, function()
UIManager.OpenPanel(UIName.RoleInfoPopup, heroData)
end, 0.5)
end
-- 选中英雄
function this.ChooseHero(go, heroData, index)
if this._CurHeroIndex == index then return end
this._CurHeroIndex = index
this.heroChoose.transform:SetParent(go.transform)
this.heroChoose.transform.localPosition = Vector3.New(0,0,0)
this.curHeroName.text = heroData.name
this.CurHeroDId = heroData.dynamicId
this.CurHeroTId = heroData.id
this.RefreshGrade(heroData.dynamicId)
this.RefreshHeroGrowList()
end
-- 刷新评分
function this.RefreshGrade(dId)
-- 评分
local _HeroGrade = UKnowNothingToThePowerManager.GetHeroGrade(dId)
this.curHeroProgress.value = _HeroGrade.tCurScore/_HeroGrade.tMaxScore
this.curHeroGrade.text = string.format("%d/%d", _HeroGrade.tCurScore, _HeroGrade.tMaxScore)
--for _, data in pairs(_HeroGradeProgress) do
-- local id = data.id
-- local progress = data.progress
-- local progressText = data.progressText
-- local value = 0
-- local str = "0/0"
-- if _HeroGrade and _HeroGrade[id] then
-- local curScore = _HeroGrade[id].curScore
-- local maxScore = _HeroGrade[id].maxScore
-- value = curScore/maxScore
-- str = string.format("%d/%d", curScore, maxScore)
-- end
-- progress.value = value
-- progressText.text = str
--end
end
-- 刷新其他界面
function this.RefreshOtherPanelShow(index)
-- 回收所有节点
TempPool:RecycleAll()
if this.ResScrollView then
this.ResScrollView.gameObject:SetActive(index == 2)
end
if this.RmdScrollView then
this.RmdScrollView.gameObject:SetActive(index == 3)
end
if this.QAScrollView then
this.QAScrollView.gameObject:SetActive(index == 4)
end
this._CurResIndex = nil
this._CurRmdIndex = nil
this._CurQAIndex = nil
-- 刷新显示
if index == 2 then
this.ShowResPanel()
elseif index == 3 then
this.ShowRmdPanel()
elseif index == 4 then
this.ShowQAPanel()
end
end
-- 显示资源获取方式界面
this._CurResIndex = nil
function this.ShowResPanel(index)
if not this.ResScrollView then
local rootWidth = this.scrollRoot.transform.rect.width
local rootHight = this.scrollRoot.transform.rect.height
local sv = SubUIManager.Open(SubUIConfig.ScrollFitterView, this.scrollRoot.transform,
this.resItem1, Vector2.New(rootWidth, rootHight), 1, 10)
sv.moveTween.Strength = 1
-- 保存
this.ResScrollView = sv
end
local dataList = UKnowNothingToThePowerManager.GetResGetParentList()
this.ResScrollView:SetData(dataList, function(dataIndex, node)
local data = dataList[dataIndex]
local itemBg = Util.GetGameObject(node, "content/itembg"):GetComponent("Image")
local itemIcon = Util.GetGameObject(node, "content/icon"):GetComponent("Image")
local title = Util.GetGameObject(node, "content/title"):GetComponent("Text")
local content = Util.GetGameObject(node, "content/content"):GetComponent("Text")
local dealBtn = Util.GetGameObject(node, "content/dealBtn")
local childBox = Util.GetGameObject(node, "childbox")
local itemId = data.ItemId
local itemConfig = ConfigManager.GetConfigData(ConfigName.ItemConfig,data.ItemId)
if itemConfig.ItemBaseType == ItemBaseType.SoulPrint then--魂印特殊显示
Util.GetGameObject(node, "content/icon"):SetActive(false)
Util.GetGameObject(node, "content/circleFrameBg"):SetActive(true)
Util.GetGameObject(node, "content/circleFrameBg"):GetComponent("Image").sprite=this.spLoader:LoadSprite(SoulPrintSpriteByQuantity[itemConfig.Quantity].circleBg2)
Util.GetGameObject(node,"content/circleFrameBg/Icon"):GetComponent("Image").sprite=SetIcon(this.spLoader, itemId)
Util.GetGameObject(node,"content/circleFrameBg/circleFrame"):GetComponent("Image").sprite=this.spLoader:LoadSprite(SoulPrintSpriteByQuantity[itemConfig.Quantity].circle)
else
Util.GetGameObject(node, "content/icon"):SetActive(true)
Util.GetGameObject(node, "content/circleFrameBg"):SetActive(false)
end
itemBg.sprite = SetFrame(this.spLoader, itemId)
itemIcon.sprite = SetIcon(this.spLoader, itemId)
title.text = data.Title
content.text = data.Content
if this._CurResIndex == dataIndex then
childBox:SetActive(true)
-- 回收数据
TempPool:Recycle("res2")
local cDataList = UKnowNothingToThePowerManager.GetResGetChildList(itemId)
for _, cdata in ipairs(cDataList) do
local cNode = TempPool:GetNode("res2", childBox)
local cItemBg = Util.GetGameObject(cNode, "itembg"):GetComponent("Image")
local cItemIcon = Util.GetGameObject(cNode, "icon"):GetComponent("Image")
local cTitle = Util.GetGameObject(cNode, "title"):GetComponent("Text")
local cContent = Util.GetGameObject(cNode, "content"):GetComponent("Text")
local cDealBtn = Util.GetGameObject(cNode, "dealBtn")
if itemConfig.ItemBaseType == ItemBaseType.SoulPrint then--魂印特殊显示
Util.GetGameObject(cNode, "icon"):SetActive(false)
Util.GetGameObject(cNode, "circleFrameBg"):SetActive(true)
Util.GetGameObject(cNode, "circleFrameBg"):GetComponent("Image").sprite=this.spLoader:LoadSprite(SoulPrintSpriteByQuantity[itemConfig.Quantity].circleBg2)
Util.GetGameObject(cNode,"circleFrameBg/Icon"):GetComponent("Image").sprite=SetIcon(this.spLoader, itemId)
Util.GetGameObject(cNode,"circleFrameBg/circleFrame"):GetComponent("Image").sprite=this.spLoader:LoadSprite(SoulPrintSpriteByQuantity[itemConfig.Quantity].circle)
else
Util.GetGameObject(cNode, "icon"):SetActive(true)
Util.GetGameObject(cNode, "circleFrameBg"):SetActive(false)
end
cItemBg.sprite = SetFrame(this.spLoader, itemId)
cItemIcon.sprite = SetIcon(this.spLoader, itemId)
cTitle.text = cdata.Title
cContent.text = cdata.Content
cDealBtn:SetActive(cdata.Jump ~= 0)
Util.AddOnceClick(cDealBtn, function()
JumpManager.GoJump(cdata.Jump)
end)
end
_SetBtnStatus(dealBtn, "open")
-- LayoutUtility.GetPreferredHeight(childBox.transform)
GetPreferredHeight(childBox.transform)
else
childBox:SetActive(false)
_SetBtnStatus(dealBtn, "close")
end
Util.AddOnceClick(dealBtn, function()
if this._CurResIndex == dataIndex then
this._CurResIndex = nil
else
this._CurResIndex = dataIndex
end
this.ShowResPanel(dataIndex)
end)
end)
-- 判断是否跳转
if index then
this.ResScrollView:SetIndex(index)
end
end
-- 刷新推荐界面显示
this._CurRmdIndex = nil
function this.ShowRmdPanel(index)
if not this.RmdScrollView then
local rootWidth = this.scrollRoot.transform.rect.width
local rootHight = this.scrollRoot.transform.rect.height
local sv = SubUIManager.Open(SubUIConfig.ScrollFitterView, this.scrollRoot.transform,
this.rmdItem, Vector2.New(rootWidth, rootHight), 1, 10)
-- 保存
this.RmdScrollView = sv
end
local dataList = UKnowNothingToThePowerManager.GetRmdList()
this.RmdScrollView:SetData(dataList, function(dataIndex, node)
local data = dataList[dataIndex]
local title = Util.GetGameObject(node, "content/title"):GetComponent("Text")
local heroBox = Util.GetGameObject(node, "content/demons")
local dealBtn = Util.GetGameObject(node, "content/dealBtn")
local childBox = Util.GetGameObject(node, "childbox")
local childName = Util.GetGameObject(childBox, "name"):GetComponent("Text")
local childContent = Util.GetGameObject(childBox, "content"):GetComponent("Text")
title.text = GetLanguageStrById(data.DescFirst)
local strList = string.split(GetLanguageStrById(data.DescSecond), "#")
childName.text = Language[12233].."\n  "..strList[1]--"      "..strList[1] -- 空格用于调整文字的起始位置
childContent.text = "\n  "..strList[2] -- 全角空格可以避免自动换行
for index, heroId in ipairs(data.ItemId) do
local heroData = ConfigManager.GetConfigData(ConfigName.HeroConfig, heroId)
local node = heroBox.transform:GetChild(index - 1).gameObject
Util.GetGameObject(node, "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.Quality))
Util.GetGameObject(node, "icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(heroData.Icon))
Util.GetGameObject(node, "posIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetJobSpriteStrByJobNum(heroData.Profession))
Util.GetGameObject(node, "proIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName))
Util.GetGameObject(node, "heroStage"):SetActive(false)
--Util.GetGameObject(node, "heroStage"):GetComponent("Image").sprite = this.spLoader:LoadSprite(HeroStageSprite[heroData.HeroStage])
Util.AddOnceClick(node, function()
UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroId, heroData.Star)
end)
end
if this._CurRmdIndex == dataIndex then
childBox:SetActive(true)
_SetBtnStatus(dealBtn, "open")
-- LayoutUtility.GetPreferredHeight(childBox.transform)
GetPreferredHeight(childBox.transform)
else
childBox:SetActive(false)
_SetBtnStatus(dealBtn, "close")
end
Util.AddOnceClick(dealBtn, function()
if this._CurRmdIndex == dataIndex then
this._CurRmdIndex = nil
else
this._CurRmdIndex = dataIndex
end
this.ShowRmdPanel(dataIndex)
end)
end)
-- 判断是否跳转
if index then
this.RmdScrollView:SetIndex(index)
end
end
this._CurQAIndex = nil
function this.ShowQAPanel(index)
if not this.QAScrollView then
local rootWidth = this.scrollRoot.transform.rect.width
local rootHight = this.scrollRoot.transform.rect.height
local sv = SubUIManager.Open(SubUIConfig.ScrollFitterView, this.scrollRoot.transform,
this.qaItem1, Vector2.New(rootWidth, rootHight), 1, 10)
-- 保存
this.QAScrollView = sv
end
local QAList = UKnowNothingToThePowerManager.GetQAList()
this.QAScrollView:SetData(QAList, function(dataIndex, node)
local data = QAList[dataIndex]
local title = Util.GetGameObject(node, "content/title"):GetComponent("Text")
local dealBtn = Util.GetGameObject(node, "content/dealBtn")
local childBox = Util.GetGameObject(node, "childbox")
title.text = GetLanguageStrById(data.DescFirst)
childBox:SetActive(false)
_SetBtnStatus(dealBtn, "close")
if this._CurQAIndex == dataIndex then
childBox:SetActive(true)
-- 回收数据
TempPool:Recycle("qa2")
local qaList = UKnowNothingToThePowerManager.GetQADetailList(data.Id)
for _, qa in ipairs(qaList) do
local qaNode = TempPool:GetNode("qa2", childBox)
local qaTitle = Util.GetGameObject(qaNode, "title"):GetComponent("Text")
local qaContent = Util.GetGameObject(qaNode, "content"):GetComponent("Text")
qaTitle.text = qa.q
qaContent.text = qa.a
end
_SetBtnStatus(dealBtn, "open")
-- LayoutUtility.GetPreferredHeight(childBox.transform)
GetPreferredHeight(childBox.transform)
end
Util.AddOnceClick(dealBtn, function()
if this._CurQAIndex == dataIndex then
this._CurQAIndex = nil
else
this._CurQAIndex = dataIndex
end
this.ShowQAPanel(dataIndex)
end)
end)
-- 判断是否跳转
if index then
this.QAScrollView:SetIndex(index)
end
end
--添加事件监听(用于子类重写)
function GiveMePowerPanel:AddListener()
--Game.GlobalEvent:AddEvent(GameEvent.HeroGrade.OnHeroGradeChange, this.RefreshGrade)
end
--移除事件监听(用于子类重写)
function GiveMePowerPanel:RemoveListener()
--Game.GlobalEvent:RemoveEvent(GameEvent.HeroGrade.OnHeroGradeChange, this.RefreshGrade)
end
--界面打开时调用(用于子类重写)
function GiveMePowerPanel:OnOpen(...)
-- 检测任务
-- UKnowNothingToThePowerManager.CheckTask()
--
-- 初始化Tab管理器
this.TabCtrl = TabBox.New()
this.TabCtrl:SetTabAdapter(this.TabAdapter)
this.TabCtrl:SetChangeTabCallBack(this.OnTabChange)
this.TabCtrl:Init(this.tabbox, _TabData)
if this.TabCtrl then
this.TabCtrl:ChangeTab(1)
end
this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main })
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function GiveMePowerPanel:OnShow()
if this.TabCtrl and this._CurIndex == 1 then
this.TabCtrl:ChangeTab(this._CurIndex)
end
end
--界面关闭时调用(用于子类重写)
function GiveMePowerPanel:OnClose()
this._CurHeroIndex = nil
UKnowNothingToThePowerManager.ClearHeroGrade()
this._CurResIndex = nil
this._CurRmdIndex = nil
this._CurQAIndex = nil
end
--界面销毁时调用(用于子类重写)
function GiveMePowerPanel:OnDestroy()
this.spLoader:Destroy()
-- 销毁对象池
TempPool:Destroy()
--
this.HeroScrollView = nil
this.ResScrollView = nil
this.RmdScrollView = nil
this.QAScrollView = nil
_HeroGradeProgress = {}
SubUIManager.Close(this.UpView)
end
return GiveMePowerPanel