PGRData/Script/matrix/xui/xuisupersmashbros/main/panels/XUiSSBMainPanelTitle.lua

87 lines
No EOL
2.1 KiB
Lua

--=================
--主界面标题面板
--=================
local XUiSSBMainPanelTitle = {}
--=================
--面板
--=================
local Panel = {}
--=================
--计时器Id
--=================
local TimerId
--=================
--获取活动剩余时间字符串
--=================
local GetLeftTimeStr = function()
local leftTime = XDataCenter.SuperSmashBrosManager.GetActivityLeftTime()
return XUiHelper.GetTime(leftTime, XUiHelper.TimeFormatType.ACTIVITY)
end
--=================
--设置剩余时间
--=================
local SetLeftTime = function()
if Panel.TxtLeftTime then
Panel.TxtLeftTime.text = GetLeftTimeStr()
end
end
--=================
--初始化
--=================
function XUiSSBMainPanelTitle.Init(ui)
Panel = XTool.InitUiObjectByUi(Panel, ui.PanelTitle)
end
--=================
--显示时
--=================
function XUiSSBMainPanelTitle.OnEnable()
XUiSSBMainPanelTitle.StartLeftTimer()
end
--=================
--开始活动时间计时器
--=================
function XUiSSBMainPanelTitle.StartLeftTimer()
--若已经存在计时器,将其移除
if TimerId then
XUiSSBMainPanelTitle.RemoveLeftTimer()
end
--先设置文本,再开始计时器持续更新文本
SetLeftTime()
TimerId = XScheduleManager.ScheduleForever(function()
if XTool.UObjIsNil(Panel.Transform) then
XUiSSBMainPanelTitle.RemoveLeftTimer()
return
end
SetLeftTime()
end, 0)
end
--=================
--移除计时器
--=================
function XUiSSBMainPanelTitle.RemoveLeftTimer()
if not TimerId then return end
XScheduleManager.UnSchedule(TimerId)
TimerId = nil
end
--=================
--设置背景图
--=================
function XUiSSBMainPanelTitle.SetBg(path)
if Panel.RImgBg then
Panel.RImgBg:SetRawImage(path)
end
end
--=================
--隐藏时
--=================
function XUiSSBMainPanelTitle.OnDisable()
XUiSSBMainPanelTitle.RemoveLeftTimer()
end
--=================
--销毁时
--=================
function XUiSSBMainPanelTitle.OnDestroy()
Panel = {}
end
return XUiSSBMainPanelTitle