Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
local OptionDynamicCtrl = class("OptionDynamicCtrl", BaseCtrl)
|
||||
OptionDynamicCtrl._mapNodeConfig = {
|
||||
Choose = {},
|
||||
trChoose = {sComponentName = "Transform"},
|
||||
txtOptionTitle = {sComponentName = "TMP_Text"}
|
||||
}
|
||||
OptionDynamicCtrl._mapEventConfig = {}
|
||||
function OptionDynamicCtrl:SetText(sTitle, tbChoose)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtOptionTitle, sTitle)
|
||||
for i = 1, self.nCount do
|
||||
NovaAPI.SetTMPText(self.txtChoose[i], tbChoose[i])
|
||||
end
|
||||
end
|
||||
function OptionDynamicCtrl:Init(callback, nIndex, nCount, sConfirm, bIsVoLan)
|
||||
self.nIndex = nIndex
|
||||
self.callback = callback
|
||||
self.nCount = nCount
|
||||
self.sConfirm = sConfirm
|
||||
self.txtChoose = {}
|
||||
self.Checkmark = {}
|
||||
self.Mask = {}
|
||||
self.bIsVoLan = bIsVoLan == true
|
||||
delChildren(self._mapNode.trChoose)
|
||||
for i = 1, nCount do
|
||||
local goItemObj = instantiate(self._mapNode.Choose, self._mapNode.trChoose)
|
||||
goItemObj:SetActive(true)
|
||||
local txtChoose = goItemObj.transform:Find("btnChoose/txtChoose"):GetComponent("TMP_Text")
|
||||
local Checkmark = goItemObj.transform:Find("btnChoose/Background/Checkmark"):GetComponent("Animator")
|
||||
local Mask = goItemObj.transform:Find("btnChoose/Mask").gameObject
|
||||
table.insert(self.txtChoose, txtChoose)
|
||||
table.insert(self.Checkmark, Checkmark)
|
||||
table.insert(self.Mask, Mask)
|
||||
local btn = goItemObj.transform:Find("btnChoose"):GetComponent("UIButton")
|
||||
local func_Handler = ui_handler(self, self.OnBtnClick_Choose, goItemObj, i)
|
||||
btn.onClick:AddListener(func_Handler)
|
||||
if i == self.nIndex then
|
||||
Checkmark:Play("checkmark_in", -1, 1)
|
||||
else
|
||||
Checkmark:Play("checkmark_out", -1, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
function OptionDynamicCtrl:SetGray(tbGrayIndex, sTip)
|
||||
self.tbGrayIndex = tbGrayIndex
|
||||
self.sTip = sTip
|
||||
for i = 1, self.nCount do
|
||||
self.Mask[i]:SetActive(tbGrayIndex and tbGrayIndex[i])
|
||||
end
|
||||
end
|
||||
function OptionDynamicCtrl:OnBtnClick_Choose(btn, index)
|
||||
if self.nIndex == index then
|
||||
return
|
||||
end
|
||||
if self.tbGrayIndex and self.tbGrayIndex[index] then
|
||||
EventManager.Hit(EventId.OpenMessageBox, self.sTip or "")
|
||||
return
|
||||
end
|
||||
local change = function()
|
||||
self.Checkmark[self.nIndex]:SetTrigger("PlayCheckmarkHide")
|
||||
self.Checkmark[index]:SetTrigger("PlayCheckmarkShow")
|
||||
self.nIndex = index
|
||||
self.callback(self.nIndex)
|
||||
end
|
||||
local checkConfirm = function()
|
||||
if self.sConfirm then
|
||||
local msg = {
|
||||
nType = AllEnum.MessageBox.Confirm,
|
||||
sContent = self.sConfirm,
|
||||
callbackConfirm = function()
|
||||
change()
|
||||
end,
|
||||
bBlur = false
|
||||
}
|
||||
EventManager.Hit(EventId.OpenMessageBox, msg)
|
||||
else
|
||||
change()
|
||||
end
|
||||
end
|
||||
if self.bIsVoLan == true then
|
||||
if index == 2 then
|
||||
checkConfirm()
|
||||
else
|
||||
change()
|
||||
end
|
||||
else
|
||||
checkConfirm()
|
||||
end
|
||||
end
|
||||
return OptionDynamicCtrl
|
||||
Reference in New Issue
Block a user