有人可以解释一下timeline.stop()
和timeline.jumpTo("end")
之间的区别吗?
答案 0 :(得分: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();
}
timeline.jumpTo("end")
将Button
移动到动画的结束点,timeline.stop()
停止其中Button
的当前位置。