这个是组件newPanel 获取这个容器的高度 从他最高的位置往下放大会原来的大小,宽不需要缩放
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-29 21:59:08 |
👁️ 阅读: 1
要实现从最高位置向下放大到原始大小的效果,可以这样操作:
```lua
-- 先获取容器对象和原始大小
local newPanel = GUI:getChildByName(parentNode, "newPanel") -- 假设这是你的容器
if GUI:Win_IsNull(newPanel) then
SL:print("容器不存在")
return
end
-- 获取原始高度
local originalSize = GUI:getContentSize(newPanel)
local originalHeight = originalSize.height
-- 设置初始状态:缩放到最小(高度为0)
GUI:setContentSize(newPanel, originalSize.width, 0)
-- 获取屏幕高度作为起始位置
local screenHeight = GUI:getScreenSize().height
local pos = GUI:getPosition(newPanel)
-- 设置到最高位置
GUI:setPosition(newPanel, pos.x, screenHeight)
-- 执行放大动画
local function scaleAnimation()
local action1 = GUI:ActionScaleTo(0.3, 1, 1) -- 宽不变,高恢复
local action2 = GUI:ActionMoveTo(0.3, pos.x, pos.y) -- 移动到原始位置
-- 同时执行缩放和移动
local spawnAction = GUI:ActionSpawn(action1, action2)
GUI:runAction(newPanel, spawnAction)
end
-- 延迟执行动画,让效果更明显
SL:ScheduleOnce(function()
scaleAnimation()
end, 0.1)
```
这个代码实现了:
1. 先获取容器原始高度
2. 将容器高度设为0(最小化)
3. 移动到屏幕最高位置
4. 执行动画同时恢复高度和移动到原始位置
注意:`GUI:ActionSpawn()`可以让多个动作同时执行,这样缩放和移动就是同步的。
← 返回问答库