2017-03-03 3 views
0

私はタイムラインで一定時間表示される画像のリストを持っています。しかし、私はそれぞれの後に、画像が表示されない小さなポーズが必要ですか?その行動を達成する方法はありますか?今、各画像が表示されている10秒間として各タイムラインの間にJavafxの休止 "cycle"

ImageView imView = new ImageView(); 

Duration timeBetweenImages = Duration.millis(10000); 
Timeline timeline = new Timeline(); 

for (int i = 0; i < imageList.size(); i++) { 
    Image image = imageList.get(i); 
    Duration frameTime = timeBetweenImages.multiply(i); 
    KeyFrame frame = new KeyFrame(frameTime, e -> imView.setImage(image)); 
    timeline.getKeyFrames().add(frame); 
} 

timeline.play(); 

:ここ

は、私がこれまで使用してコードです。私はそれぞれの10秒後に、画像が表示されないところで1秒の休止があることを望んでいます。

答えて

1
ImageView imView = new ImageView(); 

Duration timeBetweenImages = Duration.seconds(11); 
Duration pauseTime = Duration.seconds(1); 
Timeline timeline = new Timeline(); 

for (int i = 0; i < imageList.size(); i++) { 
    Image image = imageList.get(i); 
    Duration frameTime = timeBetweenImages.multiply(i); 
    KeyFrame frame = new KeyFrame(frameTime, e -> imView.setImage(image)); 
    timeline.getKeyFrames().add(frame); 

    Duration pauseFrameTime = timeBetweenImages.multiply(i+1).subtract(pauseTime); 
    KeyFrame pauseFrame = new KeyFrame(pauseFrameTime, e -> imView.setImage(null)); 
    timeline.getKeyFrames().add(pauseFrame); 
} 

timeline.play(); 
+0

これを移行と組み合わせることが可能かどうかご存知ですか? ImageViewにRotationTransitionを追加しましたが、悲しいことですが、悲しいことですが、私はこのように動作するはずです:イメージを表示して360度回転させ、1秒間停止して次のイメージと同じにします。 –

+0

'新しいKeyValue(imView.rotateProperty、value)を使用する 'Timeline'にキーフレームを追加するだけです。 –

+0

' RotateTransition'では動作しませんか?後で '同時に複数のトランジションを実行するためには「ParallelTransition」を使用してください。 –