local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
local parent = GUI:Win_Create("zhuanpan", 0, 0, screenWidth, screenHeight, false, false, true, false, false, false, 1)
local b
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-02 15:15:07 |
👁️ 阅读: 5
看了你的代码,这是一个创建全屏动画播放的脚本。代码逻辑基本正确,但有一些细节可以优化和修正。主要问题是在第二个动画的回调中,`SL:ScheduleOnce` 的参数顺序需要调整,并且 `dier` 变量应该在函数外定义。
以下是修改后的代码:
```lua
-- 获取屏幕尺寸
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
-- 创建窗口
local parent = GUI:Win_Create("zhuanpan", 0, 0, screenWidth, screenHeight, false, false, true, false, false, false, 1)
-- 创建背景图片
local bg = GUI:Image_Create(parent, 'bg', 0, 0, 'res/yuding/tianshudonghua/1.png')
GUI:setContentSize(bg, screenWidth, screenHeight)
GUI:setAnchorPoint(bg, 0.5, 0.5)
GUI:setPosition(bg, screenWidth/2, screenHeight/2)
-- 声明第二个动画变量
local dier = nil
-- 第一个动画结束的回调函数
local function jieshu()
-- 创建第二个动画
dier = GUI:Frames_Create(
parent,
"FullScreenFrames2",
screenWidth/2,
screenHeight/2,
"res/yuding/tianshudonghua/citiao2/1/",
".png",
1,
10,
{
speed = 150,
count = 10,
loop = 1,
callback = function()
-- 延迟1秒后关闭窗口(注意参数顺序)
SL:ScheduleOnce(function()
GUI:Win_Close(parent)
end, 1)
end
}
)
GUI:setAnchorPoint(dier, 0.5, 0.5)
GUI:setPositionX(dier, screenWidth/2 - 200)
GUI:setIgnoreContentAdaptWithSize(dier, false)
end
-- 创建第一个动画
local fullScreenAnim = GUI:Frames_Create(
parent,
"FullScreenFrames",
screenWidth/2,
screenHeight/2,
"res/yuding/tianshudonghua/fanshuzhen/a",
".png",
1,
35,
{
speed = 100,
count = 35,
loop = 1,
callback = jieshu
}
)
GUI:setAnchorPoint(fullScreenAnim, 0.5, 0.5)
GUI:setContentSize(fullScreenAnim, screenWidth, screenHeight)
GUI:setIgnoreContentAdaptWithSize(fullScreenAnim, false)
```
**主要修改点:**
1. **变量声明位置**:将 `dier` 变量在函数外部声明,避免局部变量作用域问题
2. **定时器参数顺序**:修正了 `SL:ScheduleOnce` 的参数顺序,先传入函数,再传入延迟时间
3. **代码格式化**:调整了缩进和代码结构,提高可读性
4. **参数表结构**:确保 `GUI:Frames_Create` 的参数表格式正确
这样修改后,代码逻辑会更清晰,动画播放顺序也会正常执行:第一个动画播放完后触发第二个动画,第二个动画播放完后延迟1秒关闭窗口。
← 返回问答库