使JavaFX等到时间轴完成

时间:2015-03-14 20:42:39

标签: javafx timeline

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

1 个答案:

答案 0 :(得分:5)

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

  1. 仅使用一个Timeline并将KeyFrame从第二个时间轴移至第一个时间轴,并调整开始时间。
  2. 第一个时间轴完成第一个时间轴:timeline1.setOnFinished(e -> timeline2.play())
  3. 如果可以,请使用Transition代替Timeline s并将其换成SequentialTransition