自定义UI管理(二)
LUA实例应用:自定义UI管理(二)
本课我们将继续学习自定义UI管理的相关知识。首先我们会学习界面事件的使用方法, 并且使玩家打开某个界面的时候进入无敌状态。我们还会学习文本元件的使用方法,利用脚本控制文本元件显示的文字内容,以及字体大小、颜色等元件属性。
视频时间节点:
- 界面事件:12:12
- 文本元件:17:47
- 元件属性:28:52
老师介绍:
界面事件
-- 界面中的按钮被松开时运行
local function UI_Button_Click(event)
-- 按下返回键
if(event.btnelenemt == [[7066760716660726930_4]])
then
local uin = event.eventobjid
local uiid = [[7066760716660726930]] -- 要隐藏的界面id
Player:hideUIView(uin, uiid) -- 给玩家隐藏界面
local uin = event.eventobjid
local uiid = [[7066719545104227474]] -- 要打开的界面id
Player:openUIView(uin, uiid) -- 给玩家显示界面
end
end
-- 注册界面中的按钮被松开监听器
ScriptSupportEvent:registerEvent([=[UI.Button.Click]=], UI_Button_Click)
-- 界面显示时运行
local function UI_Show(event)
if(event.CoustomUI == [[7066760716660726930]])
then
Actor:addBuff(event.eventobjid, 999, 1, 0)
end
end
-- 注册界面显示监听器
ScriptSupportEvent:registerEvent([=[UI.Show]=], UI_Show)
-- 界面隐藏时运行
local function UI_Hide(event)
if(event.CoustomUI == [[7066760716660726930]])
then
Actor:removeBuff(event.eventobjid, 999)
end
end
-- 注册界面隐藏监听器
ScriptSupportEvent:registerEvent([=[UI.Hide]=], UI_Hide)
万年历
--%a 一星期中天数的简写(Wed)
--%A 一星期中天数的全称(Wednesday)
--%b 月份的简写(Sep)
--%B 月份的全称(September)
--%c 日期和时间(09/16/98 23:48:10)
--%d 一个月中的第几天[0 ~ 31]
--%H 24小时制中的小时数[00 ~ 23]
--%I 12小时制中的小时数[01 ~ 12]
--%j 一年中的第几天[01 ~ 366]
--%M 分钟数[00 ~ 59]
--%m 月份数[01 ~ 12]
--%P 上午(am) 或 下午(pm)
--%S 秒数[00 ~ 59]
--%w 一星期中的第几天[0 ~ 6 = 星期天 ~ 星期六]
--%W 一年中的第几个星期0 ~ 52
--%x 日期(09/16/98)
--%X 时间(23:48:10)
--%y 两位数的年份[00 ~ 99]
--%Y 完整的年份
--%% 字符串'%'
player_list = {}
-- 有玩家进入游戏时运行
local function Game_AnyPlayer_EnterGame(event)
player_list[#player_list + 1] = event.eventobjid
end
-- 注册有玩家进入游戏监听器
ScriptSupportEvent:registerEvent([=[Game.AnyPlayer.EnterGame]=], Game_AnyPlayer_EnterGame)
week_list = {[0] = "天", "一", "二", "三", "四", "五", "六"}
-- 游戏运行到某秒时运行
local function Game_RunTime(event)
if(event.second)
then
for k,v in pairs(player_list)
do
local os_time = os.time() --返回从1070.1.1到当前的秒数
local playerid=v
local uiid=[[7066760716660726930]]--界面id
-- 日期
local elementid=[[7066760716660726930_12]]--文本元件id
local text=os.date("%Y", os_time).."年"..os.date("%m", os_time).."月"..os.date("%d", os_time).."日"--要设置的文本内容
--设置玩家的文本元件的显示内容
Coustomui:setText(playerid, uiid, elementid, text)
-- 时间
local elementid=[[7066760716660726930_13]]--文本元件id
local text=os.date("%H:%M:%S", os_time)--要设置的文本内容
--设置玩家的文本元件的显示内容
Coustomui:setText(playerid, uiid, elementid, text)
-- 星期
local elementid=[[7066760716660726930_14]]--文本元件id
local text="星期"..week_list[tonumber(os.date("%w", os_time))]--要设置的文本内容
--设置玩家的文本元件的显示内容
Coustomui:setText(playerid, uiid, elementid, text)
end
end
end
-- 注册游戏运行到某秒监听器
ScriptSupportEvent:registerEvent([=[Game.RunTime]=], Game_RunTime)