使JavaFX等到时间轴完成

Yas*_*har 5 timeline javafx

我有两个在一个函数中运行的时间线,它们都影响一个对象,问题是当我播放第一个时间线时,另一个时间线也在下一行代码中启动,我如何才能等到第一个时间线结束然后再播放另一个时间线?

Tom*_*ula 6

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

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