function qiehuan(actor)
local k = SL:GetMetaValue("SCREEN_WIDTH")
local g = SL:GetMetaValue("SCREEN_HEIGHT")
-- 创建父节点
local parent = GUI:Win_Create("MapChangeContainer", 0, 0, 0, 0, false, false, true, false, false, false, 1)
--
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-15 13:24:53 |
👁️ 阅读: 11
根据浮生梦老师前端课程内容,要实现容器先缩小、1秒内淡入放大、再1秒淡出隐藏的效果,可以这样修改你的代码:
```lua
function qiehuan(actor)
local k = SL:GetMetaValue("SCREEN_WIDTH")
local g = SL:GetMetaValue("SCREEN_HEIGHT")
-- 创建父节点
local parent = GUI:Win_Create("MapChangeContainer", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 容器宽200,高63
local containerWidth = 200
local containerHeight = 63
-- 计算容器位置(正上方居中)
local posX = k / 2 - containerWidth / 3
local posY = g - 163
-- 创建容器
local container = GUI:Layout_Create(parent, "top_container", posX, posY, containerWidth, containerHeight, false)
-- 给容器添加背景
local bg = GUI:Image_Create(container, "bg_image", 0, 0, "res/xixi/ditu/3.png")
GUI:setContentSize(bg, containerWidth, containerHeight)
-- 初始设置:缩小到0.1倍,完全透明
GUI:setScale(container, 0.1)
GUI:setOpacity(container, 0)
GUI:setVisible(container, true)
-- 创建动作序列
local function onAnimationComplete()
-- 淡出完成后隐藏
GUI:setVisible(container, false)
end
-- 动作序列:1秒内同时淡入和放大,然后1秒淡出
local actionSequence = GUI:ActionSequence(
-- 同时执行淡入和放大
GUI:ActionSpawn(
GUI:ActionFadeIn(1.0), -- 1秒淡入
GUI:ActionScaleTo(1.0, 1.0) -- 1秒放大到原始大小
),
GUI:DelayTime(1.0), -- 保持1秒
GUI:ActionFadeOut(1.0), -- 1秒淡出
GUI:CallFunc(onAnimationComplete) -- 完成后隐藏
)
-- 播放动作
GUI:runAction(container, actionSequence)
end
```
**关键点说明:**
1. **初始状态设置**:
- `GUI:setScale(container, 0.1)` - 先缩小到10%大小
- `GUI:setOpacity(container, 0)` - 设置完全透明
- `GUI:setVisible(container, true)` - 确保容器可见
2. **动作序列**:
- 使用`GUI:ActionSpawn`让淡入和放大同时进行(1秒内完成)
- `GUI:ActionFadeIn(1.0)` - 淡入动作
- `GUI:ActionScaleTo(1.0, 1.0)` - 缩放到原始大小
- `GUI:DelayTime(1.0)` - 保持1秒显示
- `GUI:ActionFadeOut(1.0)` - 1秒淡出
- `GUI:CallFunc` - 淡出完成后隐藏容器
3. **函数说明**:
- `GUI:ActionSequence` - 顺序播放多个动作
- `GUI:ActionSpawn` - 多个动作同时播放
- `GUI:DelayTime` - 延迟时间
- `GUI:CallFunc` - 动作完成后执行回调函数
- `GUI:runAction` - 播放动作序列
这样就能实现你要求的"先缩小尺寸,1秒内一边淡入一边放大,后1秒淡出再隐藏"的效果了!
根据浮生梦老师前端课程内容,要实现容器先缩小、1秒内淡入放大、再1秒淡出隐藏的效果,可以这样修改你的代码:
```lua
function qiehuan(actor)
local k = SL:GetMetaValue("SCREEN_WIDTH")
local g = SL:GetMetaValue("SCREEN_HEIGHT")
-- 创建父节点
local parent = GUI:Win_Create("MapChangeContainer", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 容器宽200,高63
local containerWidth = 200
local containerHeight = 63
-- 计算容器位置(正上方居中)
local posX = k / 2 - containerWidth / 3
local posY = g - 163
-- 创建容器
local container = GUI:Layout_Create(parent, "top_container", posX, posY, containerWidth, containerHeight, false)
-- 给容器添加背景
local bg = GUI:Image_Create(container, "bg_image", 0, 0, "res/xixi/ditu/3.png")
GUI:setContentSize(bg, containerWidth, containerHeight)
-- 初始设置:缩小到0.1倍,完全透明
GUI:setScale(container, 0.1)
GUI:setOpacity(container, 0)
GUI:setVisible(container, true)
-- 创建动作序列
local function onAnimationComplete()
-- 淡出完成后隐藏
GUI:setVisible(container, false)
end
-- 动作序列:1秒内同时淡入和放大,然后1秒淡出
local actionSequence = GUI:ActionSequence(
-- 同时执行淡入和放大
GUI:ActionSpawn(
GUI:ActionFadeIn(1.0), -- 1秒淡入
GUI:ActionScaleTo(1.0, 1.0) -- 1秒放大到原始大小
),
GUI:DelayTime(1.0), -- 保持1秒
GUI:ActionFadeOut(1.0), -- 1秒淡出
GUI:CallFunc(onAnimationComplete) -- 完成后隐藏
)
-- 播放动作
GUI:runAction(container, actionSequence)
end
```
**关键点说明:**
1. **初始状态设置**:
- `GUI:setScale(container, 0.1)` - 先缩小到10%大小
- `GUI:setOpacity(container, 0)` - 设置完全透明
- `GUI:setVisible(container, true)` - 确保容器可见
2. **动作序列**:
- 使用`GUI:ActionSpawn`让淡入和放大同时进行(1秒内完成)
- `GUI:ActionFadeIn(1.0)` - 淡入动作
- `GUI:ActionScaleTo(1.0, 1.0)` - 缩放到原始大小
- `GUI:DelayTime(1.0)` - 保持1秒显示
- `GUI:ActionFadeOut(1.0)` - 1秒淡出
- `GUI:CallFunc` - 淡出完成后隐藏容器
3. **函数说明**:
- `GUI:ActionSequence` - 顺序播放多个动作
- `GUI:ActionSpawn` - 多个动作同时播放
- `GUI:DelayTime` - 延迟时间
- `GUI:CallFunc` - 动作完成后执行回调函数
- `GUI:runAction` - 播放动作序列
这样就能实现你要求的"先缩小尺寸,1秒内一边淡入一边放大,后1秒淡出再隐藏"的效果了!
← 返回问答库