【发布时间】:2016-09-20 11:57:07
【问题描述】:
有人能解释一下timeline.stop() 和timeline.jumpTo("end") 之间的区别吗?
【问题讨论】:
有人能解释一下timeline.stop() 和timeline.jumpTo("end") 之间的区别吗?
【问题讨论】:
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 停止在当前位置。
【讨论】: