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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow