javafx
animatie
Zoeken…
Een eigenschap animeren met tijdlijn
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();
De meest eenvoudige en flexibele manier om animatie in JavaFX te gebruiken, is met de Timeline
. Een tijdlijn werkt met behulp van KeyFrame
s als bekende punten in de animatie. In dit geval weet het dat aan het begin ( 0 seconds
) dat de translateXProperty
nul moet zijn en aan het einde ( 2 seconds
) dat de eigenschap 80
moet zijn. Je kunt ook andere dingen doen, zoals de animatie omdraaien en hoe vaak deze moet worden uitgevoerd.
Tijdlijnen kunnen meerdere property's tegelijkertijd animeren:
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
Deze animatie neemt de eigenschap Y
van 0
(startwaarde van de eigenschap) tot 10
een seconde in en eindigt na 90
seconden op 90
. Let op: wanneer de animatie opnieuw begint, gaat Y
terug naar nul, ook al is dit niet de eerste waarde in de tijdlijn.