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)
-- 创建容器在屏幕正上方
-- 容器宽20
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-15 13:19:05 |
👁️ 阅读: 7
```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)
-- 创建容器在屏幕正上方
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,透明度=0
GUI:setContentSize(container, 0, containerHeight)
GUI:setOpacity(container, 0)
GUI:setVisible(container, true)
-- 创建动画序列
local actionSequence = GUI:ActionSequence(
-- 第1秒:淡入到255,同时拉伸到目标宽度
GUI:ActionSpawn(
GUI:ActionFadeIn(1.0), -- 淡入
GUI:ActionScaleTo(1.0, 100, 100) -- 拉伸到原始尺寸
),
-- 延迟1秒
GUI:DelayTime(1.0),
-- 第2秒:淡出到0,同时收缩到0宽度
GUI:ActionSpawn(
GUI:ActionFadeOut(1.0), -- 淡出
GUI:ActionScaleTo(1.0, 0, 100) -- 收缩宽度
),
-- 动画完成后隐藏
GUI:CallFunc(function()
GUI:setVisible(container, false)
end)
)
-- 执行动画
GUI:runAction(container, actionSequence)
end
```
这个动画序列实现了:
1. 初始状态:容器宽度为0,透明度为0
2. 第1秒内:同时进行淡入(透明度0→255)和宽度拉伸(0→200)
3. 保持1秒
4. 第2秒内:同时进行淡出(透明度255→0)和宽度收缩(200→0)
5. 最后隐藏容器
注意:`ActionScaleTo`的第一个参数是缩放比例百分比,100表示原始尺寸。
← 返回问答库