JavaFX时间线周期监听器

时间:2016-04-14 09:37:10

标签: javafx

有没有办法在下一轮周期开始时获取信息?时间轴的onFinish方法不适用于无限循环。

我唯一的想法是使用currentTimeProperty并检查值是增加还是减少。

感谢您的帮助 Hauke

1 个答案:

答案 0 :(得分:3)

将事件处理程序添加到最后KeyFrame(或修改现有的)以在Timeline动画重新启动时运行事件,例如变化

Timeline timeline = new Timeline(
        new KeyFrame(Duration.ZERO, new KeyValue(node.translateXProperty(), 0)),
        new KeyFrame(Duration.seconds(1), new KeyValue(node.translateXProperty(), 300))
);

timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();

Timeline timeline = new Timeline(
        new KeyFrame(Duration.ZERO, new KeyValue(node.translateXProperty(), 0)),
        new KeyFrame(Duration.seconds(1), evt -> System.out.println("finished"), new KeyValue(node.translateXProperty(), 300))
);

...

在每个周期后打印"finished"