还是不对WINPLAYMODE was deprecated please use IS_PC_OPER_MODE instead.
*********************************
Inner height <= scrollview height, it will be force sized!
[LUA-print] [02:53:17-081] [GUI LOG] GUI:Win_Open item/ItemTips
[LUA-print] [02:53:17-096]
根据错误信息分析,你的代码存在以下问题:
**主要问题:**
1. 在`updateUIxz`函数中尝试操作不存在的控件对象
2. 错误发生在第146行和第148行(两次错误)
**错误原因分析:**
从堆栈跟踪可以看出,错误发生在:
```lua
[string "GUILayout/custom/module/ZhongJiTuJian.lua"]:146: in function 'updateUIxz'
[string "GUILayout/custom/module/ZhongJiTuJian.lua"]:148: in function 'updateUIxz'
```
这通常是因为:
1. 控件`ui["Image_10"..i]`不存在(当i超过实际创建的控件数量时)
2. 控件对象已经被销毁但还在尝试操作
**修复方案:**
```lua
function ZhongJiTuJian:updateUIxz()
local ui = self.ui
local totalItems = #_cfg[self.select].idx -- 获取当前页的实际项目数量
for i = 1, totalItems do
local widget = ui["Image_10"..i]
-- 先检查控件是否存在且有效
if widget and not GUI:Win_IsNull(widget) then
if i == self.selected then
GUI:setVisible(widget, true)
else
GUI:setVisible(widget, false)
end
else
SL:Print("警告:控件 Image_10"..i.." 不存在或已销毁")
end
end
end
```
**关键修复点:**
1. **添加空值检查**:使用`if widget and not GUI:Win_IsNull(widget) then`确保控件有效
2. **避免硬编码循环**:使用`totalItems`动态控制循环次数
3. **添加错误日志**:当控件不存在时输出警告信息
**函数说明:**
- `GUI:Win_IsNull(widget)`:检查控件是否为空或已销毁
- `GUI:setVisible(widget, value)`:设置控件可见性
**额外建议:**
检查你的`updateUI`函数中创建`Image_10`系列控件时,是否确实创建了足够数量的控件。有时候可能是创建逻辑有问题导致控件数量不足。
另外,那些`WINPLAYMODE`和`SOCIAL_IS_BLICKLIST_BY_UID`的警告是引擎内部函数弃用提示,不影响你的功能,可以忽略。