Animation 为什么OnFinished Eventhandler正在连续调用?
我是JavaFX新手,对此代码有问题Animation 为什么OnFinished Eventhandler正在连续调用?,animation,javafx,javafx-8,Animation,Javafx,Javafx 8,我是JavaFX新手,对此代码有问题 pongAnimation = new Timeline( new KeyFrame(new Duration(1.0), t -> { checkForCollision(); }) ); pongAnimation.setCycleCount(Timeline.INDEFINITE); 为什么Eventhandler t -> { checkForCollision(); } 动画结束后
pongAnimation = new Timeline(
new KeyFrame(new Duration(1.0), t -> {
checkForCollision();
})
);
pongAnimation.setCycleCount(Timeline.INDEFINITE);
为什么Eventhandler
t -> { checkForCollision(); }
动画结束后再开始
我们没有密码
pongAnimation.setOnFinished( t -> {
checkForCollision();)
在我的工作手册中,它说
当关键帧具有动作事件处理程序时,该关键帧中的代码
在本例中再次是lambda表达式的处理程序是
达到该关键帧的时间时执行
我的问题是,当关键帧具有动作事件处理程序时,为什么它会再次启动事件
为什么Eventhandler在动画结束后启动
因为您将动画设置为无限重复
pongAnimation.setCycleCount(Timeline.INDEFINITE);
如果你想让它只播放一次,那就做吧
pongAnimation.setCycleCount(1);
你说的是哪部动画片?您可以添加一个复制您的问题的方法吗?使用此代码,
checkForCollision()
方法将每毫秒调用一次。实际上,checkForCollision()
将在一个脉冲中调用一次,因为时间线是由JavaFX的动画子系统设置的,JavaFX的动画子系统触发的频率不会超过一次脉冲。通常一个脉冲每秒会出现60次。我的问题是,为什么每毫秒调用一次checkForCollision()。我们没有类似于xyz.setonfinished(…)的东西@是的,说得好。