javafx
Animering
Sök…
Animera en egenskap med tidslinjen
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();
Det mest grundläggande och flexibla sättet att använda animering i JavaFX är med Timeline
. En tidslinje fungerar med hjälp av KeyFrame
som kända punkter i animeringen. I detta fall vet det att i början ( 0 seconds
) att translateXProperty
måste vara noll och i slutet ( 2 seconds
) att egenskapen måste vara 80
. Du kan också göra andra saker som att ställa in animationen för att vända och hur många gånger den ska köras.
Tidslinjer kan animera flera egendomar samtidigt:
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
Denna animering tar Y
egenskapen från 0
(egenskapens startvärde) till 10
en sekund in, och den slutar på 90
på tre sekunder. Observera att när animeringen startar över går Y
tillbaka till noll, även om det inte är det första värdet på tidslinjen.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow