让 JavaFX 等到时间线完成
make JavaFX wait until Timeline finishes
我有两个时间轴在一个函数内运行,它们都影响一个对象,问题是当我播放第一个时间轴时,另一个时间轴也在下一行代码中开始,我如何等到第一个时间轴完成然后播放另一个时间线?
Timeline.play()
是异步的——它在后台启动动画并立即 returns。有几种方法可以实现顺序执行。哪个最适合取决于您的用例。
- 只使用一个
Timeline
并将 KeyFrame
从第二个时间轴移动到第一个时间轴,调整开始持续时间。
- 在第一个时间线完成后开始第二个时间线:
timeline1.setOnFinished(e -> timeline2.play())
。
- 如果可以,请使用
Transition
s 而不是 Timeline
s 并将它们包装在 SequentialTransition
. 中
我有两个时间轴在一个函数内运行,它们都影响一个对象,问题是当我播放第一个时间轴时,另一个时间轴也在下一行代码中开始,我如何等到第一个时间轴完成然后播放另一个时间线?
Timeline.play()
是异步的——它在后台启动动画并立即 returns。有几种方法可以实现顺序执行。哪个最适合取决于您的用例。
- 只使用一个
Timeline
并将KeyFrame
从第二个时间轴移动到第一个时间轴,调整开始持续时间。 - 在第一个时间线完成后开始第二个时间线:
timeline1.setOnFinished(e -> timeline2.play())
。 - 如果可以,请使用
Transition
s 而不是Timeline
s 并将它们包装在SequentialTransition
. 中