CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
前端接口

【前端接口】GUI:Button_Create:按钮控件与点击事件的绑定

2026-09-22 20:37 作者:996 技术组 前端接口

实战应用:用在哪里

按钮是交互的起点:GUI:Button_Create 创建按钮,GUI:addOnClickEvent 绑定点击回调,动态界面的每一个可点元素都是这对接口的组合。按钮的三态贴图(常态、按下、禁用)让按压的反馈有视觉层次。

创建与绑定

lua

---创建按钮 parent:父节点 ID:唯一ID x/y:坐标 nimg:贴图
function GUI:Button_Create(parent, ID, x, y, nimg) end

-- 创建领取按钮并绑定点击
local btn = GUI:Button_Create(win, "btnClaim", 120, 40, "btn_claim.png")
GUI:Button_setTitleText(btn, "领 取")
GUI:addOnClickEvent(btn, function()
    SL:SendNetMsg(8801, 0, 0, 0, "")
    GUI:setTouchEnabled(btn, false)
    GUI:Button_setTitleText(btn, "已领取")
end)

Button_Create 的四参数定位加贴图,标题文字用 Button_setTitleText 追加。点击回调里先发网络消息到服务端,再把按钮置为禁用态:防连点的标准三步——发请求、禁用、改文案,玩家看到按钮变灰就知道请求已受理。服务端的响应回来后按结果恢复或保持按钮状态。

三态与按压反馈

lua

-- 三态贴图与按压缩放
GUI:Button_loadTextures(btn, "btn_normal.png", "btn_down.png", "btn_disabled.png")
GUI:Button_setZoomScale(btn, 0.92)
GUI:Button_setTitleFontSize(btn, 16)

loadTextures 一次配齐三态:normal 常态、down 按压、disabled 禁用,按压时的贴图切换与 setZoomScale 的缩放反馈叠加出清晰的按压手感。按钮的禁用不只是灰化贴图,setTouchEnabled 的触摸开关与贴图灰化(Button_setGrey)配合使用,视觉与交互的禁用要同步。按钮的点击热区默认与贴图同大,小按钮的点击热区可以用 setTouchEnabled 的容器方案扩大。

验证与监控

按钮点击的埋点(点击量与转化)是界面优化的数据来源,无人点击的按钮是界面冗余的信号。

踩坑记录

点击回调的闭包持有大表曾经造成界面销毁后的内存残留,回调闭包只捕获必要的变量。按钮的防连点曾经只在客户端做,连点脚本绕过客户端直发协议,防连点的最终防线在服务端的频率限制。

上线要点

按钮的回调注册与界面生命周期的配对:动态创建的按钮在父界面销毁时的清理策略要明确。三态贴图的资源命名规范统一,贴图缺失的按钮在按下时会有白块闪现。按钮的语义分组:确认类用主色、危险类用红色、禁用类灰化,颜色语言的一致性是界面信任感的一部分。

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

工具链

【工具链】风格检查器:Lua 脚本命名与规范的自动审查

实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…

2026-09-22 22:32 996 技术组
界面UI

【界面UI】拍卖行界面:出价流程与截拍提醒

实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…

2026-09-22 21:12 996 技术组
框架设计

【框架设计】幸运值机制:强化失败的隐性补偿

实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…

2026-09-22 21:12 996 技术组
安全加密

【安全加密】日志防篡改:哈希链与异地备份

实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…

2026-09-22 21:12 996 技术组
性能调优

【性能调优】批量邮件:活动奖励的分批投递

实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…

2026-09-22 21:12 996 技术组
网络通信

【网络通信】面对面交易:握手、锁定与确认的协议

实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…

2026-09-22 21:12 996 技术组