javafx
Animación
Buscar..
Animando una propiedad con línea de tiempo
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();
La forma más básica y flexible de usar la animación en JavaFX es con la clase Timeline
. Una línea de tiempo funciona utilizando KeyFrame
s como puntos conocidos en la animación. En este caso se sabe que al comienzo ( 0 seconds
) que el translateXProperty
tiene que ser cero, y al final ( 2 seconds
) que la propiedad tiene que ser 80
. También puede hacer otras cosas, como configurar la animación para que se revierta, y cuántas veces debe ejecutarse.
Las líneas de tiempo pueden animar múltiples propiedades al mismo tiempo:
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
Esta animación tomará la propiedad Y
de 0
(valor inicial de la propiedad) a 10
un segundo, y termina en 90
a los tres segundos. Tenga en cuenta que cuando la animación comienza de nuevo, Y
vuelve a cero, aunque no sea el primer valor en la línea de tiempo.