local Panel_Click = GUI:Layout_Create(parent, "Panel_Click_" .. data.id, 0, 1, 200, height, false)
GUI:setTouchEnabled(Panel_Click, true)
--修改
if data.id == 62 then
GUI:Layout_setBackGroundImage(Panel_Click, "res/public/bg_bk_001.
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-07-02 14:55:21 |
👁️ 阅读: 6
这段代码创建了一个设置面板,主要功能是实现一个装备拾取优先级的选择界面。让我详细解释每一部分的作用:
**1. 创建基础容器**
```lua
local Panel_Click = GUI:Layout_Create(parent, "Panel_Click_" .. data.id, 0, 1, 200, height, false)
GUI:setTouchEnabled(Panel_Click, true)
```
创建了一个布局容器作为整个设置项的基础面板,并启用触摸功能。
**2. 特定ID的定制化处理(ID=62时)**
```lua
if data.id == 62 then
```
当设置项的ID为62时,执行以下特殊处理,这是一个装备拾取优先级的设置。
**3. 设置背景**
```lua
GUI:Layout_setBackGroundImage(Panel_Click, "res/public/bg_bk_001.png")
GUI:Layout_setBackGroundImageScale9Slice(Panel_Click, 0, 40, 0, 40)
```
为面板设置背景图片,并配置九宫格拉伸参数,让背景能够自适应大小。
**4. 创建文字标签**
```lua
local db_zb_att = GUI:Text_Create(Panel_Click, "db_zb_att", 22, 70, 14, "#EFA54A", "职业属性优先")
local db_zb_lv = GUI:Text_Create(Panel_Click, "db_zb_lv", 22, 44, 14, "#EFA54A", "装备级别优先")
```
创建两个文字标签,分别显示"职业属性优先"和"装备级别优先",用于说明选项含义。
**5. 设置标签属性**
```lua
GUI:setAnchorPoint(db_zb_lv, 0, 0.5)
GUI:setAnchorPoint(db_zb_att, 0, 0.5)
GUI:setTouchEnabled(db_zb_lv, true)
GUI:setTouchEnabled(db_zb_att, true)
```
设置文字标签的锚点和对齐方式,并启用触摸功能,让文字也可以被点击。
**6. 创建复选框**
```lua
local nimg = "res/public/1900000682.png"
local pimg = "res/public/1900000683.png"
local cb_db_zb_att = GUI:CheckBox_Create(Panel_Click, "cb_db_zb_att", 150, 70, nimg, pimg)
local cb_db_zb_lv = GUI:CheckBox_Create(Panel_Click, "cb_db_zb_lv", 150, 44, nimg, pimg)
```
定义未选中和选中状态的图片,然后创建两个复选框,分别对应两个选项。
**7. 设置复选框初始状态**
```lua
GUI:CheckBox_setSelected(cb_db_zb_att, GongNengOBJ.DB_ZB_LV == 0)
GUI:CheckBox_setSelected(cb_db_zb_lv, GongNengOBJ.DB_ZB_LV == 1)
```
根据全局变量`GongNengOBJ.DB_ZB_LV`的值设置复选框的初始选中状态,确保两个选项互斥。
**8. 设置复选框点击事件**
```lua
GUI:addOnClickEvent(cb_db_zb_att,function ()
GUI:CheckBox_setSelected(cb_db_zb_lv, GUI:CheckBox_isSelected(cb_db_zb_att))
send_xx("GongNeng","QQ_ZB_DB")
end)
```
当点击"职业属性优先"复选框时,自动同步另一个复选框的状态(使其相反),并发送消息通知服务器。
**9. 设置文字标签点击事件**
```lua
GUI:addOnClickEvent(db_zb_att,function ()
GUI:CheckBox_setSelected(cb_db_zb_lv, not GUI:CheckBox_isSelected(cb_db_zb_lv))
GUI:CheckBox_setSelected(cb_db_zb_att, not GUI:CheckBox_isSelected(cb_db_zb_att))
send_xx("GongNeng","QQ_ZB_DB")
end)
```
当点击文字标签时,切换两个复选框的选中状态,并发送消息通知服务器。
**整体功能**:这是一个装备拾取优先级的设置界面,用户可以选择"职业属性优先"或"装备级别优先"两种拾取策略,两个选项是互斥的(只能选一个)。通过点击复选框或文字标签都可以切换选择,选择后会立即通知服务器保存设置。
← 返回问答库