Cogin.w = SL:GetMetaValue("SCREEN_WIDTH") or 0 -- 客户端宽度,添加默认值
Cogin.h = SL:GetMetaValue("SCREEN_HEIGHT") or 0 -- 客户端高度,添加默认值
if p2 == 1 then
local data = SL:JsonDecode(str)
local parent = GUI:GetWindow(nil, "")
if pare
这段代码是用来获取客户端屏幕尺寸并居中显示界面的,但有几个问题需要修正:
**代码分析:**
1. 获取屏幕宽高用于界面适配
2. 解析JSON数据
3. 获取父窗口并居中显示
**修正后的代码:**
```lua
Cogin = {}
Cogin.w = SL:GetMetaValue("SCREEN_WIDTH") or 0
Cogin.h = SL:GetMetaValue("SCREEN_HEIGHT") or 0
if p2 == 1 then
local data = SL:JsonDecode(str)
local parent = GUI:GetWindow(nil, "")
if parent and not GUI:Win_IsNull(parent) then
GUI:removeAllChildren(parent)
local posX = Cogin.w / 2
local posY = Cogin.h / 2
GUI:setPosition(parent, posX, posY)
end
end
```
**主要改进:**
1. 确保`Cogin`表已初始化
2. 添加控件空值判断`GUI:Win_IsNull(parent)`
3. 分开计算坐标,便于调试
**注意:** `GUI:GetWindow(nil, "")`这个函数在浮生梦老师的前端课程中讲解过,用于获取当前窗口。