有没有点击文本,像按钮那样缩小放大的接口?
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-08 21:33:12 |
👁️ 阅读: 7
在996引擎中,文本控件本身没有内置的点击缩放动画接口。不过你可以通过给文本控件添加点击事件,然后手动执行缩放动作序列来实现类似效果。
这里是一个完整的实现示例:
```lua
-- 创建父节点
local parent = GUI:Win_Create("TestWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建文本控件
local textLabel = GUI:Text_Create(parent, "Text_Clickable", 100, 100, 16, "#ffffff", "点击我试试")
-- 设置文本可点击(通过添加点击事件)
GUI:addOnClickEvent(textLabel, function()
-- 播放缩放动画
GUI:runAction(textLabel, GUI:ActionSequence(
GUI:ActionScaleTo(0.1, 0.8), -- 0.1秒缩放到0.8倍
GUI:ActionScaleTo(0.1, 1.0) -- 0.1秒恢复原大小
))
SL:print("文本被点击啦!")
end)
-- 如果需要更复杂的动画,可以这样:
local function playTextClickAnimation(widget)
if GUI:Win_IsNull(widget) then return end
-- 保存原始缩放值
local originalScale = GUI:getScale(widget)
-- 执行动画序列
GUI:runAction(widget, GUI:ActionSequence(
GUI:ActionScaleTo(0.08, 0.7), -- 快速缩小
GUI:ActionScaleTo(0.12, 1.1), -- 稍微放大一点
GUI:ActionScaleTo(0.1, 1.0), -- 恢复原状
GUI:CallFunc(function()
SL:print("动画完成")
end)
))
end
-- 应用到文本
GUI:addOnClickEvent(textLabel, function()
playTextClickAnimation(textLabel)
end)
```
**关键点说明:**
1. `GUI:ActionSequence()` - 用于创建动作序列,让多个动作按顺序执行
2. `GUI:ActionScaleTo(time, scale)` - 在指定时间内缩放到目标比例
3. `GUI:CallFunc(callback)` - 在动作序列中插入回调函数
4. 记得用`GUI:Win_IsNull()`检查控件是否有效
**注意事项:**
- 文本控件默认没有点击状态,需要手动添加事件
- 缩放动画会影响文本的显示位置,可能需要调整锚点
- 如果文本在滚动视图内,注意父容器的裁剪区域
这样就能让文本拥有和按钮一样的点击反馈效果啦!
← 返回问答库