function diji(msgID, msgData)
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, fa
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-02 14:31:46 |
👁️ 阅读: 5
你的代码有几个关键问题需要修正:
## 问题分析:
1. **序列帧播放完成事件**:应该使用 `GUI:Effect_addOnCompleteEvent` 来监听播放完成
2. **动作执行顺序**:`GUI:runAction` 的参数需要是动作对象,但你的序列帧播放是独立的
3. **透明度设置**:淡入前需要先设置初始透明度
## 修正后的代码:
```lua
function diji(msgID, msgData)
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, 'public_win32/1900000610.png')
GUI:setContentSize(bg, screenWidth, screenHeight)
GUI:setAnchorPoint(bg, 0.5, 0.5)
GUI:setPosition(bg, screenWidth/2, screenHeight/2)
-- 全屏序列帧
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}
)
GUI:setAnchorPoint(fullScreenAnim, 0.5, 0.5)
GUI:setContentSize(fullScreenAnim, screenWidth, screenHeight)
GUI:setIgnoreContentAdaptWithSize(fullScreenAnim, false)
-- 全屏序列帧结束后的回调函数
local function onFullScreenAnimFinish()
SL:print("全屏序列帧播放完成")
-- 左边序列帧(偏移200像素)
local leftAnim = GUI:Frames_Create(
parent,
"LeftFrames",
screenWidth/2 - 200,
screenHeight/2,
"res/yuding/tianshudonghua/citiao2/",
".png",
1,
10,
{speed = 100, count = 10, loop = 1}
)
GUI:setAnchorPoint(leftAnim, 0.5, 0.5)
GUI:setContentSize(leftAnim, 300, 300)
-- 右边图片
local rightImage = GUI:Image_Create(
parent,
'RightImage',
screenWidth/2 + 200,
screenHeight/2,
"public_win32/1900000612.png"
)
GUI:setAnchorPoint(rightImage, 0.5, 0.5)
GUI:setContentSize(rightImage, 200, 200)
-- 设置初始透明度为0
GUI:setOpacity(rightImage, 0)
-- 执行淡入动作
GUI:runAction(rightImage, GUI:ActionFadeTo(1, 255))
end
-- 为序列帧添加播放完成事件
GUI:Effect_addOnCompleteEvent(fullScreenAnim, onFullScreenAnimFinish)
end
```
## 主要修改:
1. **使用正确的事件监听**:用 `GUI:Effect_addOnCompleteEvent` 替换了 `GUI:runAction` + `DelayTime`
2. **修正淡入动作**:使用 `GUI:ActionFadeTo(1, 255)` 从透明到不透明
3. **使用指定资源**:背景和按钮图片使用了你要求的资源路径
## 检查点:
- 确保 `res/yuding/tianshudonghua/citiao2/` 路径下有 `1.png` 到 `10.png` 的序列帧图片
- 序列帧播放完成后会触发回调,显示第二个序列帧和淡入的按钮
如果还有问题,检查一下图片路径是否正确,或者使用 `SL:print` 打印调试信息查看回调是否触发。
← 返回问答库