2016-04-14 5 views
1

サイクルの次のラウンドが始まると情報を取得する方法はありますか?タイムラインのonFinishメソッドは、無限のサイクルでは機能しません。JavaFXタイムラインサイクルリスナー

私の唯一のアイデアは、currentTimePropertyを使用して値が増減するかどうかを確認することです。あなたの助け ため

おかげHauke

答えて

3

は、例えば、最後のKeyFrameにイベントハンドラを追加します(または既存のものを修正する)ときTimelineアニメーションの再起動イベントを実行しますすべてのサイクルの後"finished"を印刷する

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)) 
); 

... 

に変更。

+0

nice - ありがとうございます! – Hauke

関連する問題