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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow