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
地图框