有没有办法在下一轮周期开始时获取信息?时间轴的onFinish方法不适用于无限循环。
我唯一的想法是使用currentTimeProperty并检查值是增加还是减少。
感谢您的帮助 Hauke
答案 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"
。