使用時間軸動畫屬性
Button button = new Button("I'm here...");
Timeline t = new Timeline(
new KeyFrame(Duration.seconds(0), new KeyValue(button.translateXProperty(), 0)),
new KeyFrame(Duration.seconds(2), new KeyValue(button.translateXProperty(), 80))
);
t.setAutoReverse(true);
t.setCycleCount(Timeline.INDEFINITE);
t.play();
在 JavaFX 中使用動畫的最基本和最靈活的方法是使用 Timeline
類。時間軸使用 KeyFrame
s 作為動畫中的已知點。在這種情況下,它知道在開始時(0 seconds
)translateXProperty
需要為零,並且在結束時(2 seconds
)知道該屬性需要為 80
。你還可以執行其他操作,例如將動畫設定為反轉,以及應該執行多少次。
時間軸可以同時為多個屬性設定動畫:
Timeline t = new Timeline(
new KeyFrame(Duration.seconds(0), new KeyValue(button.translateXProperty(), 0)),
new KeyFrame(Duration.seconds(1), new KeyValue(button.translateYProperty(), 10)),
new KeyFrame(Duration.seconds(2), new KeyValue(button.translateXProperty(), 80)),
new KeyFrame(Duration.seconds(3), new KeyValue(button.translateYProperty(), 90))
); // ^ notice X vs Y
這個動畫將把 Y
屬性從 0
(屬性的起始值)帶到 10
一秒鐘,並在 90
以 3 秒結束。請注意,當動畫開始時,Y
會回到零,即使它不是時間軸中的第一個值。