javafx
Animation
Suche…
Animieren einer Eigenschaft mit der Timeline
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();
Die grundlegendste und flexibelste Möglichkeit, Animationen in JavaFX zu verwenden, ist die Timeline
Klasse. Eine Zeitleiste funktioniert, indem KeyFrame
als bekannte Punkte in der Animation verwendet werden. In diesem Fall weiß er, dass translateXProperty
am Start ( 0 seconds
) Null sein muss und am Ende ( 2 seconds
) die Eigenschaft 80
. Sie können auch andere Aktionen ausführen, z. B. die Animation umkehren und wie oft sie ausgeführt werden soll.
Zeitleisten können mehrere Eigenschaften gleichzeitig animieren:
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
Bei dieser Animation wird die Y
Eigenschaft von 0
(Startwert der Eigenschaft) bis zu einer Sekunde Sekunde auf 10
, und sie endet bei 90
Sekunden bei drei Sekunden. Wenn die Animation erneut beginnt, geht Y
auf Null zurück, obwohl es nicht der erste Wert in der Timeline ist.