local function zhuanpan(msgID, msgData)
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
local parent = GUI:Win_Create("zhuanpan", 0, 0, 0, 0, false, false, true, false,
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-20 19:50:07 |
👁️ 阅读: 18
要实现序列帧播放结束后切换另一个序列帧,可以使用帧动画的回调参数。根据浮生梦老师前端课程内容,`GUI:Frames_Create`函数的`ext`参数可以包含`callback`回调函数。
修改后的代码如下:
```lua
local function zhuanpan(msgID, msgData)
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
local parent = GUI:Win_Create("zhuanpan", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建第一个序列帧
local fullScreenAnim = GUI:Frames_Create(
parent,
"FullScreenFrames",
screenWidth/2,
screenHeight/2,
"res/yuding/donghua/a/a",
".png",
1,
20,
{
speed = 100,
count = 20,
loop = 1,
callback = function()
-- 第一个序列帧播放完成后,移除并创建第二个序列帧
GUI:removeFromParent(fullScreenAnim)
-- 创建第二个序列帧
local secondAnim = GUI:Frames_Create(
parent,
"SecondFrames",
screenWidth/2,
screenHeight/2,
"res/yuding/donghua/b/",
".png",
1,
20,
{
speed = 100,
count = 20,
loop = 1,
callback = function()
SL:Print("第二个序列帧播放完成")
end
}
)
GUI:setAnchorPoint(secondAnim, 0.5, 0.5)
GUI:setContentSize(secondAnim, screenWidth, screenHeight)
GUI:setIgnoreContentAdaptWithSize(secondAnim, false)
end
}
)
GUI:setAnchorPoint(fullScreenAnim, 0.5, 0.5)
GUI:setContentSize(fullScreenAnim, screenWidth, screenHeight)
GUI:setIgnoreContentAdaptWithSize(fullScreenAnim, false)
end
```
关键点说明:
1. 在第一个序列帧的`callback`回调函数中,先使用`GUI:removeFromParent()`移除第一个序列帧
2. 然后创建第二个序列帧,路径从"a/a"改为"b/"
3. 第二个序列帧也设置了相同的锚点、大小和自适应设置
4. 第二个序列帧也可以有自己的回调函数,用于处理播放完成后的逻辑
注意:请确保路径"res/yuding/donghua/b/"存在对应的序列帧图片文件,格式为b/1.png、b/2.png等。
← 返回问答库