local function zhankai(msgID, msgData)
local parent = GUI:Attach_RightTop()
local ui = GUI:ui_delegate(parent)
for i = 1 , 10 do
GUI:setVisible(ui['bt_'..i], true)
GUI:setOpacity(ui['bt_'..i],
```lua
local function zhankai(msgID, msgData)
-- 获取父节点
local parent = GUI:Attach_RightTop()
local ui = GUI:ui_delegate(parent)
-- 首先隐藏所有按钮
for i = 1, 10 do
GUI:setVisible(ui['bt_'..i], false)
end
-- 设置按钮初始状态(在bt_11位置)
local targetWidget = ui['bt_11']
if not GUI:Win_IsNull(targetWidget) then
local targetPos = GUI:getPosition(targetWidget)
for i = 1, 10 do
local btn = ui['bt_'..i]
if not GUI:Win_IsNull(btn) then
-- 设置初始位置在bt_11处
GUI:setPosition(btn, targetPos.x, targetPos.y)
-- 设置初始缩放为0(最小)
GUI:setScale(btn, 0)
-- 设置初始透明度为0
GUI:setOpacity(btn, 0)
-- 显示按钮
GUI:setVisible(btn, true)
-- 获取按钮原始位置(假设有记录原始位置)
local originalPos = {x = 100 + (i-1)*60, y = 100} -- 示例坐标,实际需要根据你的布局调整
-- 创建复合动作:同时淡入、放大、移动
local fadeIn = GUI:ActionFadeTo(0.5, 255)
local scaleTo = GUI:ActionScaleTo(0.5, 1) -- 放大到原始尺寸
local moveTo = GUI:ActionMoveTo(0.5, originalPos.x, originalPos.y)
-- 使用ActionSpawn让三个动作同时执行
local spawnAction = GUI:ActionSpawn(fadeIn, scaleTo, moveTo)
-- 执行动作
GUI:runAction(btn, spawnAction)
end
end
end
end
SL:RegisterNetMsg(1001, zhankai)
```
这段代码实现了:
1. 先隐藏所有bt_1到bt_10按钮
2. 将按钮移动到bt_11的位置
3. 同时执行三个动画效果:
- 淡入(透明度从0到255)
- 放大(从0缩放到原始尺寸1)
- 移动到原始位置
注意:你需要根据实际布局调整`originalPos`的坐标值。如果不知道按钮原始位置,可以先在创建按钮时记录位置坐标。