如何使用 Universal Tween Engine 立即完成或结束补间?
How to finish or end a tween instantly with Universal Tween Engine?
通用补间引擎有一个 TweenManager.killTarget()
选项,但这会在未完成补间的情况下杀死它。
我想结束将目标设置为立即结束的补间。
不幸的是我找不到办法做到这一点?时间轴也是如此。
有人知道怎么做吗?
您可以在 Tween 或时间轴上显式调用 update(),其中包含动画持续时间的增量(我个人会使用时间轴)。
例如(假设您有一个名为 spr 的 libgdx Sprite 和一个正确实现相关补间类型的 SpriteAccessor):
// scale and move a sprite over 2 seconds
Timeline tl = Timeline.createSequence().
.push(Tween.set(spr, SpriteAccessor.SCALE).target(1, 1))
.push(Tween.set(spr, SpriteAccessor.POSITION).target(0, 0))
.beginParallel()
.push(Tween.to(spr, SpriteAccessor.SCALE, 2).target(2, 2))
.push(Tween.to(spr, SpriteAccessor.POSITION, 2).target(50, 50))
.end()
.start(tweenManager);
// force the animation to complete
tl.update(2);
// no need to call kill() as isFinished gets set implicitly by the update
希望对您有所帮助!
通用补间引擎有一个 TweenManager.killTarget()
选项,但这会在未完成补间的情况下杀死它。
我想结束将目标设置为立即结束的补间。 不幸的是我找不到办法做到这一点?时间轴也是如此。
有人知道怎么做吗?
您可以在 Tween 或时间轴上显式调用 update(),其中包含动画持续时间的增量(我个人会使用时间轴)。
例如(假设您有一个名为 spr 的 libgdx Sprite 和一个正确实现相关补间类型的 SpriteAccessor):
// scale and move a sprite over 2 seconds
Timeline tl = Timeline.createSequence().
.push(Tween.set(spr, SpriteAccessor.SCALE).target(1, 1))
.push(Tween.set(spr, SpriteAccessor.POSITION).target(0, 0))
.beginParallel()
.push(Tween.to(spr, SpriteAccessor.SCALE, 2).target(2, 2))
.push(Tween.to(spr, SpriteAccessor.POSITION, 2).target(50, 50))
.end()
.start(tweenManager);
// force the animation to complete
tl.update(2);
// no need to call kill() as isFinished gets set implicitly by the update
希望对您有所帮助!