首页
统计
壁纸
追番记录
优秀博主
关于
推荐
导航
工具
音乐解锁
Search
1
NAS的简单介绍
775 阅读
2
网站环境一键部署工具推荐
506 阅读
3
tp5-模型数据处理
422 阅读
4
win10镜像
412 阅读
5
第20200225期-电脑壁纸-P10
350 阅读
PHP
闲谈杂料
硬件系统
美图
ThinkPHP
笔记
数据库
Lua
登录
Search
标签搜索
ThinkPHP
MySQL
Laravel
PHP
API
GIT
Windows10
markdown
Web
跨域
ajax
小程序
壁纸
Linux
jsonp
try
异常
Dcat
UEFI
win10
phpfunny
累计撰写
104
篇文章
累计收到
24
条评论
首页
栏目
PHP
闲谈杂料
硬件系统
美图
ThinkPHP
笔记
数据库
Lua
页面
统计
壁纸
追番记录
优秀博主
关于
推荐
导航
工具
音乐解锁
搜索到
1
篇与
的结果
2025-03-13
【LUA基础】全局表和局部表的应用
参考:dev/script/ssr/ssrgame/ui/zhuangshengUI.lua@P3 setmetatable+local 局部+等 组合在实际脚本开发的应用全局表zhuanshengUI = {} zhuanshengUI._hideMain = true local uinodes = setmetatable({}, { __index = function(t, key) rawset(t, key, {}) return t[key] end }) local ui = uinodes.ui这是一个常用的UI操作模式:uinodes是一个全局表,用于储存所有UI相关的节点引用uinodes.ui通常包含了通过GUI编辑器创建的所有UI组件引用实例:-- 获取UI引用 local ui = uinodes.ui -- 访问具体的UI组件 ui.Panel_1 -- 访问名为 Panel_1 的面板 ui.btn_close -- 访问关闭按钮 ui.img_bg -- 访问背景图片 ui.txt_title -- 访问标题文本 -- 对UI组件进行操作 GUI:setVisible(ui.Panel_1, true) -- 显示面板 GUI:setString(ui.txt_title, "新标题") -- 设置文本 GUI:setPosition(ui.img_bg, 100, 100) -- 设置位置主要用途:提供一个统一的方式访问UI组件避免重复获取UI组件引用使代码更清晰和易于维护通常在UI初始化时会设置这些引用function mianfeifuliUI.Init() -- 创建UI时自动保存所有组件引用到 uinodes.ui uinodes.ui = { Panel_1 = panel1, btn_close = closeBtn, img_bg = bgImage, -- ... 其他UI组件 } end这样在后续的代码中就可以通过 local ui = uinodes.ui 方便地访问所有UI组件。局部表local uinodes = setmetatable({}, { __index = function(t, key) rawset(t, key, {}) return t[key] end })这是创建一个特殊的表结构:local uinodes表示这是一个局部表,不是全局表只在当前文件(zhuanshengUI.lua)中可以访问其他文件无法直接访问这个 uinodessetmetatable是 Lua 的元表机制:第一个参数{} 是创建一个空表第二个参数是元表,定义了表的特殊行为__index是元表的一个元方法:当访问 uinodes 中不存在的键时会触发这个函数例如:当访问uinodes.ui 但 ui 不存在时这个设计的作用是:-- 当第一次访问 uinodes.ui 时 local ui = uinodes.ui -- 会自动创建一个新的空表并赋值给 uinodes.ui -- 相当于自动执行了: if not uinodes.ui then uinodes.ui = {} end使用实例:-- 第一次访问时自动创建空表 uinodes.ui.button1 = someButton -- uinodes.ui 会被自动创建 uinodes.windows.main = someWindow -- uinodes.windows 会被自动创建 -- 不需要事先声明: -- uinodes.ui = {} -- uinodes.windows = {}这种设计的好处:自动初始化:不需要手动创建子表防止错误:访问不存在的键时不会报错代码更简洁:减少了初始化代码按需创建:只有被访问的键才会创建对应的表
2025年03月13日
4 阅读
0 评论
0 点赞