| 名称 |
类型 |
必填 |
说明 |
| 类型 | 文本 | true | 固定值: 表示这是一个按钮控件 |
| 名称 | 文本 | true | 窗口中唯一标识 |
| x | 整数 | false | 默认显示坐标x |
| y | 整数 | false | 默认显示坐标y |
| 宽度 | 整数 | false | |
| 高度 | 整数 | false | |
| 标题 | 文本 | false | |
| 字体 | 文本 | false | 资源标识 |
| 行距 | 整数 | false | |
| 间距 | 整数 | false | |
| 文本色 | table {} | false | 一个RGBA颜色数组 {默认色,点燃色,按下色} |
| 描边色 | RGBA | false | |
| 底图 | 文本 | false | 资源标识 |
| 九宫 | table | false | 底图的九宫描述 |
| 编组 | 整数 | false | 所有相同编组的按钮会变成开关模式 |
| 选中 | 逻辑 | false | 默认是否选中 |
| 禁用 | 逻辑 | false | 默认是否禁用 |
| 点击间隔 | table {毫秒,模式} | false | 两次有效点击之间的冷却及遮罩模式;默认不配置,等价于 {0,0} |
| 三层按钮 | 逻辑 | false | 是否是三层按钮 默认:true |
| 皮肤 | 文本 | false | 按钮使用的皮肤 |
| 气泡提示 | 文本 | false | |
| 气泡皮肤 | 文本 | false | |
| 附加 | table | false | 自定义变量 |
| 默认可视 | 逻辑 | false | 默认是否显示 |
| 系统事件 | table | false | |
资源表 = {
{标识="包裹按钮",文件="dmstore_TJ98JtwDl4DMyJlcCbEPlEDNCPlKDcsB"}
},
控件 = {
{
名称 = "测试按钮",
类型 = "按钮",
x = 20,
y = 200,
宽度 = 100,
高度 = 34,
点击间隔 = { 1000, 1 },
标题 = "测试按钮",
系统事件 = {
点击 = function(按钮对象)
调试输出("点击",按钮对象.名称)
end
}
},
{
名称 = "包裹按钮",
类型 = "按钮",
x = 200,
y = 200,
底图 = "包裹按钮",
系统事件 = {
点击 = function(按钮对象)
调试输出("点击",按钮对象.名称)
end
}
},
}
提示
按钮是常用控件,App.lua中为他准备了缺省的全局皮肤按钮,你也可以自己创建按钮皮肤使用。
点击间隔是按钮创建配置项,当前格式为{毫秒间隔时间, 遮罩模式}。未配置、传入空 table 或第一项无效时按 0 毫秒处理,不限制连续点击;table 第二项省略或不是 1、2、3、4 时按模式 0 处理。
- 第一项大于 0 时,一次有效左键点击会先启动冷却,再调用
点击系统事件;冷却结束前不会再次触发按钮点击。 - 模式 0:只执行点击冷却,不绘制遮罩;模式 1:转圈冷却遮罩;模式 2:遮罩从左往右消退;模式 3:遮罩从右往左消退;模式 4:遮罩从上往下消退。
- 为兼容 ver-8 已有配置,单独数值写法仍按
{该数值, 1}读取;新代码应使用 table 格式。 - 冷却不会改写按钮对象公开的
禁用属性;手工设置的禁用 = true仍独立生效。 - 冷却期间会在按钮内容上方显示原生矩形遮罩,结束后自动隐藏;遮罩随按钮当前宽高更新。
- 普通按钮按引擎帧时间累计冷却。此项目前仅在创建配置中读取,不是可运行时读写的公开属性。
{
名称 = '购买按钮',
类型 = '按钮',
宽度 = 80,
高度 = 28,
标题 = '购买',
点击间隔 = { 1000, 2 }, -- 1000 毫秒,遮罩从左往右消退
系统事件 = {
点击 = function(按钮对象)
调试输出('每秒最多触发一次', 按钮对象.名称)
end,
},
}
- 类型:
逻辑 - 读写:
读写 - 说明:配置编组使用,选中后其他相同编组的按钮状态变成按下。
- 类型:
数值 - 读写:
读写 - 说明:动态改变控件的显示层级,值越大越先显示。
系统事件 = {
点击 = function(按钮对象)
local 窗口对象 = 引擎.窗口.属性窗口
窗口对象.角色按钮.次序 = 0
窗口对象.包裹按钮.次序 = 0
窗口对象.技能按钮.次序 = 1
end
}
- 类型:
table - 读写:
读写 - 说明:读写控件的附加信息。
| 添加节点 |
| 说明:在控件上添加一个节点,成功返回节点对象。 |
| 参数名称 |
值的类型 |
是否必填 |
说明描述 |
| 组件配置 | table | true | 文本,动画...等基石组件 |
示例
属性按钮.添加节点(
{
名称 = "红点动画",
类型 = "动画",
x = 30,
y = 4,
动画 = "红点动画",
动作 = "动画",
})
| 返回值 |
值的类型 |
说明描述 |
| 组件对象 | 对象对象 / nil | 失败返回 nil |
|
| 取出节点 |
| 说明:从节点名称取出节点对象。 |
| 参数名称 |
值的类型 |
是否必填 |
说明描述 |
| 组件名称 | 文本 | false | |
示例
local 特效节点 = 按钮对象.取出节点("红点动画")
if (特效节点) then
特效节点.可视 = false
end
| 返回值 |
值的类型 |
说明描述 |
| 组件对象 | 对象 / nil | 取出失败返回 nil |
|
| 清除节点 |
| 说明:清除节点。销毁模式,清除后不可再次调用! |
| 参数名称 |
值的类型 |
是否必填 |
说明描述 |
| 组件名称 | 文本/组件对象 | false | |
示例
|
控件被点击时触发
示例
系统事件 = {
点击 = function(按钮对象)
调试输出(按钮对象.名称)
end
}
| 日期 | 版本 | 简易记录 |
| 2026-09-11 | Heimei-EG-lua ver-8 | 新增按钮创建参数点击间隔(毫秒,默认 0);冷却期间阻止重复点击并显示原生矩形 CD 遮罩,保留手工禁用状态。 |
| 2026-09-11 | Heimei-EG-lua ver-9 | 点击间隔调整为{毫秒,模式},新增左右/上下方向遮罩;缺省字段安全按 0 处理,并保留 ver-8 数值写法兼容。 |
| 2026-09-11 | Heimei-EG-lua ver-10 | table 第二项默认值调整为 0;模式 0 仍执行点击冷却但不创建/显示 CD 遮罩,模式 1–4 保持既定方向。 |