Dream Mod 3.0Dream Mod 3.0
首页
快速开始
资源库
首页
快速开始
资源库
  • 进度

    • 更新日志
  • 指南

    • 快速上手
    • App.lua
    • Server.lua
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 成长
    • DmTcpClient
    • WebSocketClient
    • SqliteDB
    • 皮肤
    • 自定义组件
  • Api

    • 引擎
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 自定义组件
    • 音乐
    • 缓动
    • 全局
  • 控件

    • 标签
    • 按钮
    • 图片框
    • 动画框
    • 模型框
    • 文本框
    • 进度条
    • 技能格子
    • 快捷格子
    • 包裹格子
    • 道具格子
    • 角色框
    • 选择框
    • 选择夹
    • 容器
    • 地图框
    • 滑块条
    • 滚动条
    • 组合框
    • 输入框
    • 列表框
  • 组件

    • 文本
    • 艺术字
    • 精灵
    • 矩形
    • 圆形
    • 动画
    • 模型
  • 其他

    • 丰富文本
    • 模板变量
    • 资源格式
    • 游戏盒子
    • 资源列表
  • 自定义功能

    • 战斗血液效果
    • 地图天气
  • 按钮

    名称 类型 必填 说明
    类型 文本true固定值: 表示这是一个按钮控件
    名称 文本true窗口中唯一标识
    x 整数false默认显示坐标x
    y 整数false默认显示坐标y
    宽度 整数false
    高度 整数false
    标题 文本false
    字体 文本false资源标识
    行距 整数false
    间距 整数false
    文本色 table {}false一个RGBA颜色数组 {默认色,点燃色,按下色}
    描边色 RGBAfalse
    底图 文本false资源标识
    九宫 tablefalse底图的九宫描述
    编组 整数false所有相同编组的按钮会变成开关模式
    选中 逻辑false默认是否选中
    禁用 逻辑false默认是否禁用
    点击间隔 table {毫秒,模式}false两次有效点击之间的冷却及遮罩模式;默认不配置,等价于 {0,0}
    三层按钮 逻辑false是否是三层按钮 默认:true
    皮肤 文本false按钮使用的皮肤
    气泡提示 文本false
    气泡皮肤 文本false
    附加 tablefalse自定义变量
    默认可视 逻辑false默认是否显示
    系统事件 tablefalse
    
    
    资源表 = {
    
        {标识="包裹按钮",文件="dmstore_TJ98JtwDl4DMyJlcCbEPlEDNCPlKDcsB"}
    
    },
    
    控件 = {
    
        {
    
            名称 = "测试按钮",
    
            类型 = "按钮",
    
            x = 20,
    
            y = 200,
    
            宽度 = 100,
            高度 = 34,
            点击间隔 = { 1000, 1 },
            标题 = "测试按钮",
    
            系统事件 = {
    
                点击 = function(按钮对象)
    
                    调试输出("点击",按钮对象.名称)
    
                end
    
            }
    
        },
    
        {
    
            名称 = "包裹按钮",
    
            类型 = "按钮",
    
            x = 200,
    
            y = 200,
    
            底图 = "包裹按钮",
    
            系统事件 = {
    
                点击 = function(按钮对象)
    
                    调试输出("点击",按钮对象.名称)
    
                end
    
            }
    
        },
    
    }
    
    
    
    

    提示

    按钮是常用控件,App.lua中为他准备了缺省的全局皮肤按钮,你也可以自己创建按钮皮肤使用。

    点击间隔(Heimei-EG-lua ver-10)

    点击间隔是按钮创建配置项,当前格式为{毫秒间隔时间, 遮罩模式}。未配置、传入空 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,
        },
    }
    

    属性

    可视

    • 类型:逻辑
    • 读写:读写
    • 说明:是否显示控件

    父窗口

    • 类型:窗口对象
    • 读写:只读
    • 说明:控件的父窗口对象
    调试输出(按钮1.父窗口.名称)
    
    

    名称

    • 类型:文本
    • 读写:只读
    • 说明:控件的名称。

    x

    • 类型:数值
    • 读写:读写
    • 说明:坐标x。

    y

    • 类型:数值
    • 读写:读写
    • 说明:坐标y。

    内容宽度

    • 类型:整数
    • 读写:只读
    • 说明:按钮标签文本宽度。

    内容高度

    • 类型:整数
    • 读写:只读
    • 说明:按钮标签文本高度。

    宽度

    • 类型:整数
    • 读写:读写
    • 说明:读取/修改按钮宽度。

    高度

    • 类型:整数
    • 读写:读写
    • 说明:读取/修改按钮高度。

    标题

    • 类型:文本
    • 读写:读写
    • 说明:读写按钮的标题。

    选中

    • 类型:逻辑
    • 读写:读写
    • 说明:配置编组使用,选中后其他相同编组的按钮状态变成按下。

    禁用

    • 类型:逻辑
    • 读写:读写
    • 说明:是否禁用

    次序

    • 类型:数值
    • 读写:读写
    • 说明:动态改变控件的显示层级,值越大越先显示。
    系统事件 = {
    
        点击 = function(按钮对象)
    
            local 窗口对象 = 引擎.窗口.属性窗口
    
            窗口对象.角色按钮.次序 = 0
    
            窗口对象.包裹按钮.次序 = 0
    
            窗口对象.技能按钮.次序 = 1
    
        end
    
    }
    
    

    气泡提示

    • 类型:文本
    • 读写:读写
    • 说明:读写按钮的气泡提示。

    附加

    • 类型:table
    • 读写:读写
    • 说明:读写控件的附加信息。

    方法

    添加节点

    添加节点
    说明:在控件上添加一个节点,成功返回节点对象。
    参数名称 值的类型 是否必填 说明描述
    组件配置 tabletrue文本,动画...等基石组件

    示例

    属性按钮.添加节点(
    
    {
    
        名称 = "红点动画",
    
        类型 = "动画",
    
        x = 30,
    
        y = 4,
    
        动画 = "红点动画",
    
        动作 = "动画",
    
    })
    
    
    返回值 值的类型 说明描述
    组件对象 对象对象 / nil失败返回 nil

    取出节点

    取出节点
    说明:从节点名称取出节点对象。
    参数名称 值的类型 是否必填 说明描述
    组件名称 文本false

    示例

    local 特效节点 = 按钮对象.取出节点("红点动画")
    
    if (特效节点) then
    
        特效节点.可视 = false
    
    end
    
    
    返回值 值的类型 说明描述
    组件对象 对象 / nil取出失败返回 nil

    清除节点

    清除节点
    说明:清除节点。销毁模式,清除后不可再次调用!
    参数名称 值的类型 是否必填 说明描述
    组件名称 文本/组件对象false

    示例

    按钮对象.清除节点("红点动画")
    
    
    返回值 值的类型 说明描述
    是否成功 逻辑

    系统事件

    🔹 点击

    控件被点击时触发

    回调参数 类型 说明描述
    按钮 按钮对象

    示例

    系统事件 = {
    
        点击 = function(按钮对象)
            调试输出(按钮对象.名称)
        end
    }
    

    更新记录

    日期版本简易记录
    2026-09-11Heimei-EG-lua ver-8新增按钮创建参数点击间隔(毫秒,默认 0);冷却期间阻止重复点击并显示原生矩形 CD 遮罩,保留手工禁用状态。
    2026-09-11Heimei-EG-lua ver-9点击间隔调整为{毫秒,模式},新增左右/上下方向遮罩;缺省字段安全按 0 处理,并保留 ver-8 数值写法兼容。
    2026-09-11Heimei-EG-lua ver-10table 第二项默认值调整为 0;模式 0 仍执行点击冷却但不创建/显示 CD 遮罩,模式 1–4 保持既定方向。