创建一个铺满全屏的序列帧 路径res\yuding\beijing 一共14张图 循环播放
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-09 20:00:55 |
👁️ 阅读: 9
我来帮你创建一个全屏循环播放的序列帧动画。
首先需要创建父节点界面,然后创建序列帧控件:
```lua
-- 创建父节点界面
local parent = GUI:Win_Create("SequenceFrameWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 获取屏幕尺寸
local screenSize = SL:GetMetaValue("SCREEN_SIZE", "screen")
local screenWidth = screenSize.width
local screenHeight = screenSize.height
-- 创建序列帧动画
-- 假设图片命名格式为: beijing1.png, beijing2.png, ..., beijing14.png
local sequenceFrame = GUI:Frames_Create(
parent, -- 父节点
"bg_sequence", -- 唯一ID
0, -- x坐标
0, -- y坐标
"res/yuding/beijing", -- 图片前缀
".png", -- 图片后缀
1, -- 起始帧
14, -- 结束帧(共14张)
{ -- 扩展参数
speed = 100, -- 每帧播放速度100毫秒
count = 14, -- 图片总数
loop = -1, -- -1表示无限循环
finishhide = 0 -- 播放结束不隐藏
}
)
-- 设置序列帧为全屏大小
GUI:setSize(sequenceFrame, screenWidth, screenHeight)
GUI:setPosition(sequenceFrame, screenWidth/2, screenHeight/2) -- 居中显示
-- 如果需要设置锚点为中心(确保缩放时居中)
-- GUI:setAnchorPoint(sequenceFrame, 0.5, 0.5)
-- 开始播放动画
GUI:Frames_play(sequenceFrame)
```
**代码说明:**
1. **创建界面**:使用`GUI:Win_Create`创建父节点窗口
2. **获取屏幕尺寸**:通过`SL:GetMetaValue`获取当前屏幕分辨率
3. **创建序列帧**:使用`GUI:Frames_Create`函数创建序列帧动画
4. **参数说明**:
- `prefix`: "res/yuding/beijing" - 图片路径前缀
- `suffix`: ".png" - 图片后缀
- `beginframe`: 1 - 从第1张开始
- `finishframe`: 14 - 到第14张结束
- `ext`扩展参数:
- `speed = 100` - 每帧显示100毫秒
- `count = 14` - 总共14张图片
- `loop = -1` - -1表示无限循环播放
- `finishhide = 0` - 播放结束不隐藏
**注意事项:**
- 确保图片命名正确:beijing1.png, beijing2.png, ..., beijing14.png
- 图片需要放在`res/yuding/`目录下
- 序列帧会自动按照指定速度循环播放
- 全屏效果通过设置尺寸为屏幕大小实现
如果需要控制动画的播放/暂停,可以使用以下函数:
```lua
-- 暂停动画
GUI:Frames_pause(sequenceFrame)
-- 恢复动画
GUI:Frames_resume(sequenceFrame)
-- 停止动画
GUI:Frames_stop(sequenceFrame)
```
这样就能创建一个铺满全屏、循环播放的序列帧背景动画了!
← 返回问答库