GUI:addOnClickEvent(child, function()
-- 移除之前显示的克隆组件
if npc.currentClone and not GUI:Win_IsNull(npc.currentClone) then
GUI:removeFromParent(npc.currentClone)
npc.currentClone = n
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-29 20:59:04 |
👁️ 阅读: 3
```lua
GUI:addOnClickEvent(child, function()
-- 移除之前显示的克隆组件
if npc.currentClone and not GUI:Win_IsNull(npc.currentClone) then
GUI:removeFromParent(npc.currentClone)
npc.currentClone = nil
end
-- 克隆新的Panel
local newPanel = GUI:Clone(npc.ui.Panel_1)
GUI:setVisible(newPanel, true)
-- 插入到当前按钮后面
local itemIndex = GUI:ListView_getItemIndex(npc.ui.ListView_1, child)
GUI:ListView_insertCustomItem(npc.ui.ListView_1, newPanel, itemIndex + 1)
-- 记录当前克隆组件
npc.currentClone = newPanel
-- 设置初始缩放为0.001
GUI:setScale(newPanel, 0.001)
-- 执行放大动画
GUI:runAction(newPanel, GUI:ActionScaleTo(0.2, 1))
SL:print("点击了按钮:", name, "插入位置:", itemIndex + 1)
end)
```
关键修改:
1. `GUI:setScale(newPanel, 0.001)` - 将克隆出来的组件缩放设置为极小值
2. `GUI:runAction(newPanel, GUI:ActionScaleTo(0.2, 1))` - 用0.2秒的时间从0.001放大到原始大小
这样每次点击按钮时,新克隆的组件都会有一个从小到大的缩放动画效果。
```lua
GUI:addOnClickEvent(child, function()
-- 移除之前显示的克隆组件
if npc.currentClone and not GUI:Win_IsNull(npc.currentClone) then
GUI:removeFromParent(npc.currentClone)
npc.currentClone = nil
end
-- 克隆新的Panel
local newPanel = GUI:Clone(npc.ui.Panel_1)
GUI:setVisible(newPanel, true)
-- 插入到当前按钮后面
local itemIndex = GUI:ListView_getItemIndex(npc.ui.ListView_1, child)
GUI:ListView_insertCustomItem(npc.ui.ListView_1, newPanel, itemIndex + 1)
-- 记录当前克隆组件
npc.currentClone = newPanel
-- 设置初始缩放为0.001
GUI:setScale(newPanel, 0.001)
-- 执行放大动画
GUI:runAction(newPanel, GUI:ActionScaleTo(0.2, 1))
SL:print("点击了按钮:", name, "插入位置:", itemIndex + 1)
end)
```
关键修改:
1. `GUI:setScale(newPanel, 0.001)` - 将克隆出来的组件缩放设置为极小值
2. `GUI:runAction(newPanel, GUI:ActionScaleTo(0.2, 1))` - 用0.2秒的时间从0.001放大到原始大小
这样每次点击按钮时,新克隆的组件都会有一个从小到大的缩放动画效果。
← 返回问答库