让 JavaFX 等到时间线完成

make JavaFX wait until Timeline finishes

我有两个时间轴在一个函数内运行,它们都影响一个对象,问题是当我播放第一个时间轴时,另一个时间轴也在下一行代码中开始,我如何等到第一个时间轴完成然后播放另一个时间线?

Timeline.play() 是异步的——它在后台启动动画并立即 returns。有几种方法可以实现顺序执行。哪个最适合取决于您的用例。

  1. 只使用一个 Timeline 并将 KeyFrame 从第二个时间轴移动到第一个时间轴,调整开始持续时间。
  2. 在第一个时间线完成后开始第二个时间线:timeline1.setOnFinished(e -> timeline2.play())
  3. 如果可以,请使用 Transitions 而不是 Timelines 并将它们包装在 SequentialTransition.