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
    布局 整数true-1 手动定位 0 自动排列 1 垂直排列 2 水平排列
    垂直滚动条显示 整数false-1 不显示 0 自动显示 1始终显示
    水平滚动条显示 整数false-1 不显示 0 自动显示 1始终显示
    垂直按钮递增 整数false点击按钮时的增减的进度
    水平按钮递增 整数false点击按钮时的增减的进度
    鼠标拖动 逻辑false是否允许在容器空白处鼠标拖拽移动内部显示区域 默认:false
    范围限制 逻辑false是否按容器内总的元素宽高作为容器范围 默认:true
    滚轮缩放 table {最小比例,最大比例}false非nil表示允许鼠标滚轮缩放容器内容 例:{0.6,1.4}
    内边距 tablefalse{2,2,2,2}
    边框宽度 整数false
    边框色 RGBAfalse
    背景色 RGBAfalse
    项目 table {}false组件列表
    附加 tablefalse自定义变量
    默认可视 逻辑false默认是否显示
    系统事件 tablefalse
    {
        名称 = "容器框",
        类型 = "容器",
        默认可视 = true,
        x = 10,
        y = 40,
        宽度 = 240,
        高度 = 240,
        间距 = 2,
        行距 = 6,
        布局 = 0, -- -1 手动定位  0 自动排列  1 垂直排列  2 水平排列
        内边距 = {2,2,2,2},
        边框宽度 = 0,
        边框色 = RGBA(222,222,222,255),
        背景色 = RGBA(24,24,24,255),
        项目 = {
            
            {
                名称 = "标签1",
                类型 = "标签",
                x = 4,
                y = 34,
                宽度 = 80,
                高度 = 20,
                标题 = "标签1",
                文本色 = RGBA(240,240,240,255),
                描边色 = RGBA(0,0,0,200)
            },
    
    
            {
                名称 = "标签2",
                类型 = "标签",
                x = 40,
                y = 360,
                宽度 = 120,
                高度 = 40,
                艺术字 = "艺术字",
                标题 = "123456",
                文本色 = RGBA(240,240,240,255),
                描边色 = RGBA(0,0,0,200),
                水平对齐 = 1,
                垂直对齐 = 1,
                圆角半径 = 4,
                圆角边数 = 8,
                边框宽度 = 2,
                水平缩放 = 1.0,
                垂直缩放 = 1.0,
                行距 = 2,
                间距 = -2,
                边框色 = RGBA(0,255,0,255),
                背景色 = RGBA(0,0,0,255)
            },
    
    
            {
                名称 = "按钮1",
                类型 = "按钮",
                x = 4,
                y = 70,
                宽度 = 42,
                高度 = 130,
                标题 = "按钮1",
                系统事件 = {
                    点击 = function(按钮对象)
                        调试输出(按钮对象.名称,按钮对象.父窗口.名称)
                    end
                }
            },
    
    
            {
                名称 = "按钮2",
                类型 = "按钮",
                x = 4,
                y = 70,
                宽度 = 320,
                高度 = 90,
                标题 = "按钮2",
                系统事件 = {
                    点击 = function(按钮对象)
                        调试输出(按钮对象.名称,按钮对象.父窗口.名称)
                    end
                }
            },
    
            {
                名称 = "选择框1",
                类型 = "选择框",
                x = 150,
                y = 150,
                宽度 = 12,
                高度 = 12,
                标题 = "自动出售",
                气泡提示 = "这是一个气泡提示",
                系统事件 = {
                    点击 = function(选择框对象)
                        调试输出(选择框对象.选中)
                    end
                }
            },
    
        }
    
    }
    

    提示

    容器中无法嵌套 选择夹 容器 。

    属性

    可视

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

    父窗口

    • 类型:窗口对象
    • 读写:只读
    • 说明:控件的父窗口对象

    名称

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

    x

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

    y

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

    次序

    • 类型:数值
    • 读写:读写
    • 说明:动态改变控件的显示层级,值越大越先显示。

    宽度

    • 类型:数值
    • 读写:读写
    • 说明:读写容器框宽度。

    高度

    • 类型:数值
    • 读写:读写
    • 说明:读写容器框高度。

    鼠标坐标

    • 类型:{x,y}
    • 读写:只读
    • 说明:鼠标在容器内部的坐标。

    鼠标焦点

    • 类型:逻辑
    • 读写:只读
    • 说明:鼠标是否在容器中。

    水平位置

    • 类型:数值
    • 读写:只读
    • 说明:容器框中水平滚动条当前的位置。

    垂直位置

    • 类型:数值
    • 读写:只读
    • 说明:容器框中垂直滚动条当前的位置。

    缩放

    • 类型:数值
    • 读写:只读
    • 说明:容器框中内容当前的整体缩放比例。

    镜头对象

    • 类型:包含属性{x,y}的table
    • 读写:读写
    • 说明:快捷移动镜头,并始终绑定。nil取消
    local 主角对象 = 容器对象.取出项目("角色1") 
    容器对象.镜头对象 = 主角对象
    

    线段

    • 类型:table
    • 读写:读写
    • 说明:在容器背景上画线段。 { {x,y,x1,y1,宽度,颜色} , {x,y,x1,y1,宽度,颜色} , ...}
    容器框.线段 = {
        {0,0,100,100,2,RGBA(128,128,128,255)},
        {0,0,100,150,2,RGBA(128,128,0,255)}
        ...
        ...
    }
    

    附加

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

    方法

    加入项目

    加入项目
    说明:往容器中动态加入 自定义组件。
    参数名称值的类型是否必填说明描述
    组件配置 tabletrue
    滚动到底部 逻辑false
    加入的位置 整数false不填表示在尾部添加

    示例

    容器1.加入项目({
        名称 = "测试组件",
        类型 = "关卡项目",
        头像 = "_关卡项目_头像_1",
        标题 = "项目1",
        等级 = 1
    })
    
    返回值值的类型说明描述
    组件对象 对象返回新加入的组件对象
    注意事项
    1、目前只能加入 自定义组件 。

    删除项目

    删除项目
    说明:根据组件名称进行删除。
    参数名称值的类型是否必填说明描述
    组件名称 文本true

    示例

    容器1.删除项目("测试组件")
    

    取出项目

    取出项目
    说明:取出容器中的项目对象。
    参数名称值的类型是否必填说明描述
    组件名称 文本/nilfalse不填表示取出所有组件

    示例

    local 关卡项目 = 容器1.取出项目("关卡1") 
    local 关卡项目组 = 容器1.取出项目() -- 取出全部
    
    返回值值的类型说明描述
    项目对象 对象 / 对象 {} / nil取出失败返回 nil

    注意事项
    1、取出全部返回是对象数组 {}

    刷新

    刷新
    说明:重新计算,主动刷新容器中的项目位置。

    示例

    容器1.刷新()
    

    清空

    清空
    说明:清空容器中的项目。

    示例

    容器1.清空()
    

    移动镜头

    移动镜头
    说明:容器内部中心移动到指定坐标。
    参数名称值的类型是否必填说明描述
    x 整数true容器内坐标x
    y 整数true容器内坐标y
    缩放倍数 数值false

    示例

    容器框1.移动镜头(600,400,1)
    

    加入事件

    加入事件
    说明:往容器中加入一个自定义事件。
    参数名称值的类型是否必填说明描述
    事件名称 文本true触发的事件名称
    附加信息 tablefalse事件触发时可以取出
    延迟时间 数值false延迟执行
    自动销毁 逻辑false是否只执行一次,默认:true

    示例

    系统事件 = {
    
        创建 = function(容器对象)
            容器对象.加入事件("延迟触发",{},500)
        end,
    
        延迟触发 = function (容器对象,tbl,dt,time)
            调试输出("触发了")
        end,
    
    }
    

    删除事件

    删除事件
    说明:删除指定自定义事件。
    参数名称值的类型是否必填说明描述
    事件名称 文本true

    示例

    系统事件 = {
        创建 = function(容器对象)
            容器对象.加入事件("倒计时",{计次=10},1000,false)
        end,
    
        倒计时 = function (容器对象,tbl,dt,time)
            tbl.计次 = tbl.计次 - 1
            if (tbl.计次 == 0) then
                容器对象.删除事件("倒计时")
                调试输出("起飞!")
                return
            end
            调试输出("倒计时 " .. tbl.计次 .. "秒")
        end,
    }
    

    系统事件

    🔹 创建

    创建时触发

    回调参数类型说明描述
    容器对象 容器组件

    示例

    系统事件 = {
        创建 = function(容器对象)
            调试输出(容器对象.名称)
        end
    }
    

    🔹 鼠标按下

    • 鼠标按下时触发。
    • 返回 true 可以阻止事件的继续传递,如果启用了鼠标拖动也会被拦截。
    回调参数类型说明描述
    容器对象 容器组件
    焦点对象 组件对象 当前的鼠标焦点组件
    键值 整数 0:左键 1:右键 2:中键。
    功能键 整数1:Ctrl 2:Shift 3:Alt 是否处于按下状态

    示例

    系统事件 = {
        鼠标按下 = function(容器对象,焦点组件,键值,功能键)
            if (焦点组件) then
                调试输出(焦点组件.名称,焦点组件.焦点节点)
                return true
            end
        end,
    }
    

    🔹 鼠标弹起

    • 鼠标弹起时触发。
    • 返回 true 可以阻止事件的继续传递。
    回调参数类型说明描述
    容器对象 容器组件
    焦点组件 组件对象 当前鼠标焦点组件
    键值 整数 0:左键 1:右键 2:中键。
    功能键 整数1:Ctrl 2:Shift 3:Alt 是否处于按下状态

    示例

    系统事件 = {
        鼠标弹起 = function(容器对象,焦点组件,键值,功能键)
            if (焦点组件) then
                调试输出(焦点组件.名称)
            end
            return true
        end,
    }
    

    🔹 鼠标移动

    • 鼠标在组件上移动时触发。
    • 返回 true 可以阻止事件的继续传递。
    回调参数类型说明描述
    容器对象 容器组件
    焦点对象 组件对象 当前鼠标焦点组件
    功能键 整数1:Ctrl 2:Shift 3:Alt 是否处于按下状态

    示例

    系统事件 = {
        鼠标移动 = function(容器对象,焦点组件,功能键)
            if (焦点组件) then
                调试输出(焦点组件.名称)
                return true
            end
        end,
    }
    
    Prev
    选择夹
    Next
    地图框