2016-09-20 8 views

答えて

1

Timeline.stop()アニメーションを停止し、Timeline.play()がアニメーションの開始を開始するようにします。 「現在の実行」の更新はこれ以上行われません。

timeline.jumpTo("end")は、アニメーションの最後に配置された"end"というマークになります。これはtimeline.jumpTo(timeline.getTotalDuration())と同じ効果があります。そのときに到着したアニメーションのエフェクトが実行されます。

次の例では異なる動作を観察することができます

@Override 
public void start(Stage primaryStage) { 
    Button btn = new Button("Play/(Stop/Jump)"); 

    Timeline timeline = new Timeline(
      new KeyFrame(Duration.ZERO, new KeyValue(btn.translateXProperty(), 0d)), 
      new KeyFrame(Duration.seconds(10), new KeyValue(btn.translateXProperty(), 200d)) 
    ); 

    btn.setOnAction((ActionEvent event) -> { 
     if (timeline.getStatus() == Animation.Status.RUNNING) { 
//   timeline.jumpTo("end"); 
      timeline.stop(); 
     } else { 
      timeline.play(); 
     } 
    }); 

    StackPane root = new StackPane(); 
    root.getChildren().add(btn); 

    Scene scene = new Scene(root, 400, 400); 

    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 

それでButtonは、現在の位置だ停止しtimeline.stop()、アニメーションの終点にButtonを移動timeline.jumpTo("end")

+0

ありがとう!それは私を助けた –

関連する問題