local a = GUI:Win_FindParent(110)
local button = GUI:GetWindow(a, "wancheng")
GUI:setScale(button, 0.5) <Img|id=wancheng|x=-4.0|y=-4.0|width=210|height=89|scale9l=10|img=yuding/baoxiang/2.png|scale9b=10|scale9r=10|esc=0|scale9t=10>
从代码来看,你遇到了控件获取失败的问题。让我帮你分析一下:
```lua
local a = GUI:Win_FindParent(110)
SL:print("父节点是否有效:", GUI:Win_IsNull(a))
local button = GUI:GetWindow(a, "wancheng")
SL:print("按钮是否获取成功:", GUI:Win_IsNull(button))
if not GUI:Win_IsNull(button) then
GUI:setScale(button, 0.5)
SL:print("按钮缩放设置成功")
else
SL:print("错误:无法获取按钮控件")
end
```
**问题分析:**
1. **父节点问题**:`GUI:Win_FindParent(110)` 获取的是自带父节点,但需要确认这个节点是否存在且有效
2. **控件ID不匹配**:你的按钮ID是 `"wancheng"`,但根据图片信息,这个控件可能是一个图片控件(`<Img|id=wancheng...`),而不是按钮控件
3. **获取方式**:`GUI:GetWindow()` 是通过父节点和控件ID获取子控件,但如果控件创建方式不同,可能需要用其他方法
**建议的解决方案:**
```lua
-- 方法1:先检查父节点
local parent = GUI:Win_FindParent(110)
if GUI:Win_IsNull(parent) then
SL:print("父节点110不存在")
return
end
-- 方法2:尝试获取控件(可能是图片控件)
local widget = GUI:GetWindow(parent, "wancheng")
if GUI:Win_IsNull(widget) then
SL:print("控件wancheng不存在,尝试创建新控件")
-- 创建新的按钮控件
local button = GUI:Button_Create(parent, "wancheng", 100, 100, "res/public/1900000612.png")
if not GUI:Win_IsNull(button) then
GUI:setScale(button, 0.5)
SL:print("新按钮创建并缩放成功")
end
else
-- 如果获取成功,设置缩放
GUI:setScale(widget, 0.5)
SL:print("现有控件缩放成功")
end
```
**关键点:**
- 使用 `GUI:Win_IsNull()` 检查控件是否有效
- 如果控件不存在,可能需要重新创建
- 注意控件类型:图片控件和按钮控件获取方式相同,但创建方式不同
如果还是拿不到,可能是控件ID写错了,或者父节点不对。建议先用调试代码检查一下各个节点的情况。