窗口
介绍
窗口组件
local 窗口配置 = {
类型 = "窗口",
名称 = "新窗口",
标题 = "窗口标题",
宽度 = 400,
高度 = 200,
可移动 = true,
默认可视 = true,
}
return 窗口配置
配置项
| 名称 | 类型 | 必填 | 说明 |
| 类型 | 文本 | true | 固定值:窗口 表示这是一个窗口组件 |
| 名称 | 文本 | true | 全局唯一的窗口标识 |
| 标题 | 文本 | false | 窗口上显示的标题 需要皮肤支持 |
| x | 整数 | false | 默认显示坐标x |
| y | 整数 | false | 默认显示坐标y |
| 宽度 | 整数 | false | 窗口宽度 |
| 高度 | 整数 | false | 窗口高度 |
| 边框宽度 | 整数 | false | |
| 边框色 | RGBA | false | |
| 置顶 | 逻辑 | false | 是否在所有窗口中置顶显示 |
| 可移动 | 逻辑 | false | 窗口是否可移动 |
| 可穿透 | 逻辑 | false | 窗口是否可穿透 |
| 背景色 | RGBA | false | |
| 默认可视 | 逻辑 | false | 默认是否显示 |
| 背景遮罩透明度 | 整数 [0-255] | false | 窗口显示时是否在背后显示一个全屏遮罩,此时窗口为独占模式。 |
| 底图 | 文本 | false | 背景图片标识,当设置了底图后不会再应用皮肤配置。 |
| 九宫 | table | false | 底图使用的九宫配置 {左,上,右,下} |
| 皮肤 | 文本 | false | 指定窗口皮肤 不使用默认皮肤可以填 "无" |
| 开关动效 | table | false | {开=0,关=0} |
| 开关音效 | table | false | {开="音效_窗口开",关="音效_窗口关"} |
| 资源表 | table | false | { {标识="",文件=""}, {标识="",文件=""}, } |
| 控件皮肤 | table | false | 同App.lua中的控件皮肤 |
| 组件 | table | false | 自定义的组件数组 |
| 控件 | table | false | 控件数组 |
| 系统事件 | table | false |
开关动效
窗口打开或者关闭时,是否伴随一个动画效果。
| 名称 | 类型 | 说明 |
|---|---|---|
开 | 整数 | 0 无效果 1 宽高缩放 2 宽度缩放 3 高度缩放 |
关 | 整数 | 0 无效果 1 宽高缩放 2 宽度缩放 3 高度缩放 |
开关动效 = {开=2,关=2},
开关音效
窗口打开或者关闭时,是否播放一个音效。
| 名称 | 类型 | 说明 |
|---|---|---|
开 | 文本 | 音效标识 |
关 | 文本 | 音效标识 |
开关音效 = {开="音效_窗口开",关="音效_窗口关"},
组件
可以将 自定义组件 封装在此处。
控件
窗口中所有的控件都被填写在控件数组中,形式如下:
控件 = {
{类型="标签",...},
{类型="按钮",...},
{类型="包裹格子",...},
...
....
}
系统事件
🔹 打开
窗口打开时触发
| 回调参数 | 类型 | 说明描述 |
| 窗口对象 | 窗口对象 |
示例
系统事件 = {
打开 = function(窗口对象)
调试输出(窗口对象.名称,"打开")
end,
}
🔹 关闭
窗口关闭时触发
| 回调参数 | 类型 | 说明描述 |
| 窗口对象 | 窗口对象 |
示例
系统事件 = {
关闭 = function(窗口对象)
调试输出(窗口对象.名称,"关闭")
end,
}
🔹 点击
- 窗口被点击时触发
- 优先于控件事件触发,可以通过
return false来阻止事件继续传播
| 回调参数 | 类型 | 说明描述 |
| 窗口对象 | 窗口对象 | |
| 键值 | 整数 | 0:左键 1:右键 2:中键。 |
| 功能键 | 整数 | 1:Ctrl 2:Shift 3:Alt 是否处于按下状态 |
示例
系统事件 = {
点击 = function(窗口对象,键值,功能键)
调试输出(窗口对象.名称,"点击",窗口对象.鼠标坐标,键值,功能键)
窗口对象.关闭()
return false --- 可以通过 return false 来阻止事件继续传播
end,
}
🔹 自定义事件
是指通过Api 加入事件 创建的事件。
| 回调参数 | 类型 | 说明描述 |
| 窗口对象 | 窗口对象 | |
| 事件附加 | table | 是指通过Api [加入事件]中传递进来的 附加信息 |
| dt | 数值 | 事件执行的实际间隔时间 |
| time | 数值 | 事件执行的总时间 |
示例
系统事件 = {
创建 = function(窗口对象)
窗口对象.加入事件("定时器",{},500,false)
end,
定时器 = function (窗口对象,tbl,dt,time)
调试输出(tbl,dt,time)
end,
}
