refined.lock = {} -- 复选框状态
for i = 1 ,3 do
local lockState = "CheckBox_"..i
GUI:addOnClickEvent(refined.ui[lockState], function()
local lockState_i = GUI:CheckBox_isSelected(refined.ui[lockState])
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-20 23:42:16 |
👁️ 阅读: 7
这是因为你代码中的逻辑判断反了。`GUI:CheckBox_isSelected()` 函数返回的是复选框的选中状态:
- 当复选框被勾选时,`GUI:CheckBox_isSelected()` 返回 `true`
- 当复选框未勾选时,`GUI:CheckBox_isSelected()` 返回 `false`
你的代码中,当 `lockState_i == true`(即勾选状态)时,你设置了 `refined.lock[i] = 1`,这表示"勾选=1";当 `lockState_i == false`(即未勾选)时,你设置了 `refined.lock[i] = 0`,这表示"不勾选=0"。
所以实际上你的代码逻辑是:
- 勾选 → `refined.lock[i] = 1`
- 不勾选 → `refined.lock[i] = 0`
如果你希望"勾选=0,不勾选=1",那么需要修改逻辑:
```lua
refined.lock = {} -- 复选框状态
for i = 1, 3 do
local lockState = "CheckBox_"..i
GUI:addOnClickEvent(refined.ui[lockState], function()
local lockState_i = GUI:CheckBox_isSelected(refined.ui[lockState])
if lockState_i == true then
refined.lock[i] = 0 -- 勾选时为0
else
refined.lock[i] = 1 -- 不勾选时为1
end
SL:dump(refined.lock)
end)
end
```
这样逻辑就反过来了,符合你的需求。
这是因为你代码中的逻辑判断反了。`GUI:CheckBox_isSelected()` 函数返回的是复选框的选中状态:
- 当复选框被勾选时,`GUI:CheckBox_isSelected()` 返回 `true`
- 当复选框未勾选时,`GUI:CheckBox_isSelected()` 返回 `false`
你的代码中,当 `lockState_i == true`(即勾选状态)时,你设置了 `refined.lock[i] = 1`,这表示"勾选=1";当 `lockState_i == false`(即未勾选)时,你设置了 `refined.lock[i] = 0`,这表示"不勾选=0"。
所以实际上你的代码逻辑是:
- 勾选 → `refined.lock[i] = 1`
- 不勾选 → `refined.lock[i] = 0`
如果你希望"勾选=0,不勾选=1",那么需要修改逻辑:
```lua
refined.lock = {} -- 复选框状态
for i = 1, 3 do
local lockState = "CheckBox_"..i
GUI:addOnClickEvent(refined.ui[lockState], function()
local lockState_i = GUI:CheckBox_isSelected(refined.ui[lockState])
if lockState_i == true then
refined.lock[i] = 0 -- 勾选时为0
else
refined.lock[i] = 1 -- 不勾选时为1
end
SL:dump(refined.lock)
end)
end
```
这样逻辑就反过来了,符合你的需求。
← 返回问答库