一个序列帧结束后 播放另外一个序列帧
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-20 19:34:04 |
👁️ 阅读: 22
要实现一个序列帧结束后播放另一个序列帧,可以使用`GUI:Frames_Create`的`ext`参数中的`callback`回调函数。这里是一个完整的实现示例:
```lua
-- 首先创建父节点界面
local parent = GUI:Win_Create("FrameAnimWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 第一个序列帧的参数
local ext1 = {
count = 80, -- 图片数量
speed = 80, -- 播放速度(毫秒)
loop = 1, -- 播放次数
finishhide = 1, -- 播放结束隐藏
callback = function() -- 播放完成回调
SL:Print("第一个序列帧播放完成")
-- 第一个序列帧结束后创建并播放第二个序列帧
local ext2 = {
count = 60,
speed = 100,
loop = 1,
finishhide = 1,
callback = function()
SL:Print("第二个序列帧播放完成")
end
}
-- 创建第二个序列帧
local frames2 = GUI:Frames_Create(
parent,
"Frames_2",
200, 200,
"res/custom/effect/seq2/",
".png",
1, 60,
ext2
)
-- 设置锚点(如果需要)
GUI:setAnchorPoint(frames2, 0.5, 0.5)
end
}
-- 创建并播放第一个序列帧
local frames1 = GUI:Frames_Create(
parent,
"Frames_1",
100, 100,
"res/custom/effect/seq1/",
".png",
1, 80,
ext1
)
-- 设置锚点
GUI:setAnchorPoint(frames1, 0.5, 0.5)
```
**关键点说明:**
1. **回调函数机制**:在`ext`参数的`callback`中编写第一个序列帧结束后的逻辑
2. **参数配置**:
- `count`: 序列帧图片数量
- `speed`: 每帧播放时间(毫秒)
- `loop`: 循环次数(1表示只播放一次)
- `finishhide`: 1表示播放结束后隐藏
3. **资源路径**:确保图片资源路径正确,格式为`前缀+序号+后缀`
这样当第一个序列帧播放完成后,会自动触发回调函数创建并播放第二个序列帧。
← 返回问答库