137 lines
No EOL
4.2 KiB
Lua
137 lines
No EOL
4.2 KiB
Lua
local XUiDrawPreview = XLuaUiManager.Register(XLuaUi, "UiDrawPreview")
|
|
|
|
function XUiDrawPreview:OnAwake()
|
|
self:InitAutoScript()
|
|
end
|
|
|
|
function XUiDrawPreview:OnStart(drawId, closeCb, father)
|
|
self.PanelProCard.gameObject:SetActive(false)
|
|
self.PanelStdCard.gameObject:SetActive(false)
|
|
self.DrawId = drawId
|
|
self.CloseCb = closeCb
|
|
self.Father = father
|
|
self.ProCards = {}
|
|
self.StdCards = {}
|
|
end
|
|
|
|
function XUiDrawPreview:OnEnable()
|
|
self:Init(self.Father.DrawInfo.Id)
|
|
end
|
|
|
|
function XUiDrawPreview:Init(id)
|
|
self.DrawId = id
|
|
local previewList = XDataCenter.DrawManager.GetDrawPreview(self.DrawId)
|
|
if not previewList then
|
|
return
|
|
end
|
|
|
|
local upGoods = previewList.UpGoods
|
|
|
|
if #upGoods > 0 then
|
|
self.ProTitle.gameObject:SetActive(true)
|
|
else
|
|
self.ProTitle.gameObject:SetActive(false)
|
|
end
|
|
|
|
for i = 1, #upGoods do
|
|
if not self.ProCards[i] then
|
|
local go = CS.UnityEngine.Object.Instantiate(self.PanelProCard, self.PanelPro)
|
|
local item = XUiGridCommon.New(self, go)
|
|
item:Refresh(upGoods[i])
|
|
table.insert(self.ProCards, item)
|
|
else
|
|
self.ProCards[i]:Refresh(upGoods[i])
|
|
end
|
|
self.ProCards[i].GameObject:SetActive(true)
|
|
end
|
|
|
|
for i = #upGoods + 1, #self.ProCards do
|
|
self.ProCards[i].GameObject:SetActive(false)
|
|
end
|
|
|
|
|
|
local goods = previewList.Goods
|
|
for i = 1, #goods do
|
|
if not self.StdCards[i] then
|
|
local go = CS.UnityEngine.Object.Instantiate(self.PanelStdCard, self.PanelStd)
|
|
local item = XUiGridCommon.New(self, go)
|
|
item:Refresh(goods[i])
|
|
table.insert(self.StdCards, item)
|
|
else
|
|
self.StdCards[i]:Refresh(goods[i])
|
|
end
|
|
self.StdCards[i].GameObject:SetActive(true)
|
|
end
|
|
|
|
for i = #goods + 1, #self.StdCards do
|
|
self.StdCards[i].GameObject:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function XUiDrawPreview:SetActive(bool)
|
|
self.GameObject:SetActive(bool)
|
|
end
|
|
|
|
-- auto
|
|
-- Automatic generation of code, forbid to edit
|
|
function XUiDrawPreview:InitAutoScript()
|
|
self:AutoInitUi()
|
|
self.SpecialSoundMap = {}
|
|
self:AutoAddListener()
|
|
end
|
|
|
|
function XUiDrawPreview:AutoInitUi()
|
|
-- self.PanelPreview = self.Transform:Find("SafeAreaContentPane/PanelPreview")
|
|
-- self.PanelPro = self.Transform:Find("SafeAreaContentPane/PanelPreview/PnlScrollView/PnlViewport/PnlDetailContent/PanelPro")
|
|
-- self.PanelProCard = self.Transform:Find("SafeAreaContentPane/PanelPreview/PnlScrollView/PnlViewport/PnlDetailContent/PanelPro/PanelProCard")
|
|
-- self.PanelStd = self.Transform:Find("SafeAreaContentPane/PanelPreview/PnlScrollView/PnlViewport/PnlDetailContent/PanelStd")
|
|
-- self.PanelStdCard = self.Transform:Find("SafeAreaContentPane/PanelPreview/PnlScrollView/PnlViewport/PnlDetailContent/PanelStd/PanelStdCard")
|
|
-- self.BtnClose = self.Transform:Find("SafeAreaContentPane/BtnClose"):GetComponent("Button")
|
|
-- self.ProTitle = self.Transform:Find("SafeAreaContentPane/PanelPreview/PnlScrollView/PnlViewport/PnlDetailContent/ProTitle")
|
|
end
|
|
|
|
function XUiDrawPreview:GetAutoKey(uiNode, eventName)
|
|
if not uiNode then
|
|
return
|
|
end
|
|
return eventName .. uiNode:GetHashCode()
|
|
end
|
|
|
|
function XUiDrawPreview:RegisterListener(uiNode, eventName, func)
|
|
local key = self:GetAutoKey(uiNode, eventName)
|
|
if not key then
|
|
return
|
|
end
|
|
local listener = self.AutoCreateListeners[key]
|
|
if listener ~= nil then
|
|
uiNode[eventName]:RemoveListener(listener)
|
|
end
|
|
|
|
if func ~= nil then
|
|
if type(func) ~= "function" then
|
|
XLog.Error("XUiDrawPreview:RegisterListener函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
|
end
|
|
|
|
listener = function(...)
|
|
XSoundManager.PlayBtnMusic(self.SpecialSoundMap[key], eventName)
|
|
func(self, ...)
|
|
end
|
|
|
|
uiNode[eventName]:AddListener(listener)
|
|
self.AutoCreateListeners[key] = listener
|
|
end
|
|
end
|
|
|
|
function XUiDrawPreview:AutoAddListener()
|
|
self.AutoCreateListeners = {}
|
|
self:RegisterClickEvent(self.BtnClose, self.OnBtnCloseClick)
|
|
end
|
|
-- auto
|
|
function XUiDrawPreview:OnBtnCloseClick()
|
|
--[[ if self.Closed then
|
|
return
|
|
end
|
|
|
|
self.Closed = true
|
|
--]]
|
|
end |