为什么OnFinished Eventhandler会不断调用?

时间:2015-10-14 20:11:28

标签: animation javafx javafx-8

我是JavaFX的新手并且遇到此代码的问题

  pongAnimation = new Timeline(
    new KeyFrame(new Duration(1.0), t -> {
         checkForCollision();
      })
  );
  pongAnimation.setCycleCount(Timeline.INDEFINITE);

为什么使用Eventhandler

 t -> { checkForCollision(); }
在Animantion结束后开始?

我们没有代码

   pongAnimation.setOnFinished( t -> {
         checkForCollision();)

在我的工作簿中,它说

  

当KeyFrame有一个动作事件处理程序时,代码就在那里   处理程序 - 在这种情况下再次是一个lambda表达式 - 是   在达到该KeyFrame的时间时执行。

我的问题是当KeyFrame有一个动作事件处理程序时,为什么它会再次启动该事件?

1 个答案:

答案 0 :(得分:0)

  

为什么在Animantion结束后Eventhandler会启动?

因为您通过

将动画设置为无限期重复
pongAnimation.setCycleCount(Timeline.INDEFINITE);

如果你想只播放一次

pongAnimation.setCycleCount(1);