你的特效在图片上层是因为`GUI:Effect_Create`创建的特效默认会添加到父节点的最上层。根据浮生梦老师前端课程内容,你需要使用`GUI:setLocalZOrder`来控制层级。
修改方法是在创建特效后,立即设置它的`localZOrder`为负值,这样它就会在图片的下层显示:
```lua
lib:left_move_to_fadeout("image_2","res/yidalu/zhuansheng4.0/zhuansheng tup.png",0.2,2,0.2,function()
end)
SL:ScheduleOnce(function()
local topLayer = GUI:Attach_UITop()
local image = GUI:getChildByName(topLayer, "image_2")
if image and not GUI:Win_IsNull(image) then
local effect = GUI:Effect_Create(
image,
"eff_86416",
250,
200,
0,
86416
)
if effect and not GUI:Win_IsNull(effect) then
-- 关键修改:设置特效在图片下层
GUI:setLocalZOrder(effect, -1)
GUI:Effect_addOnCompleteEvent(effect, function()
GUI:removeFromParent(effect)
end)
end
if not GUI:getChildByName(image, "Text_Level") then
local text = GUI:Text_Create(image, "Text_Level", 250, 250, 34, "#D9CA00", level or "")
GUI:setPosition(text, 264, 105)
GUI:Text_setFontName(text, "fonts/方正北魏楷书简体.TTF")
end
local textWidget = GUI:getChildByName(image, "Text_Level")
if textWidget then
GUI:Text_setString(textWidget, level)
end
end
end, 0.1)
```
**解释说明:**
- `GUI:setLocalZOrder(effect, -1)`:将特效的层级设置为-1,这样它就会在默认层级为0的图片下层显示
- 数值越小层级越靠下,数值越大层级越靠上
- 你可以根据需要调整这个数值,比如-2、-3等,但注意不要设置太小的负值导致被其他元素遮挡
这样修改后,特效就会在图片的下层播放了。下次遇到层级问题时,记得使用`GUI:setLocalZOrder`函数来精确控制!