¿Cómo combinar transiciones en javafx

JavaFX proporciona dos clases de transición que están diseñados para permitir que se combinan las transiciones para que dos o más transiciones se ejecutan uno tras otro o al mismo tiempo. los SequentialTransition clase le permite ejecutar varias transiciones, una tras otra, mientras que el ParallelTransition clase le permite ejecutar varias transiciones a la vez.

Ambas clases tienen constructores simples que aceptan una lista de transiciones como argumentos y un jugar método que permite iniciar las animaciones. Por ejemplo, si tiene tres transiciones llamado t1, t2, y t3 ya creado, se puede ejecutar en secuencia así:

= New SequentialTransition (t1, t2, t3) S.PLAY SequentialTransition s () -

Cuando el jugar método que se llama, la transición t1 se extenderá hasta la finalización y transición t2 correrá. Cuando t2 acabados, la transición t3 se ejecutará.

Para ejecutar las tres transiciones de forma simultánea, utilice el ParallelTransition clase en su lugar:

ParallelTransition p = new ParallelTransition (t1, t2, t3) p.play () -

Si lo prefiere, puede agregar animaciones después de que el constructor ha sido llamado por el uso de la getChildren método. Por ejemplo:

ParallelTransition p = new ParallelTransition()p.getChildren().add(t1)-p.getChildren().add(t2)-p.getChildren().add(t3)-p.play()-

O:

ParallelTransition p = new ParallelTransition () p.getChildren () addAll (t1, t2, t3) -p.play (). -

Una animación añadió a una SequentialTransition o ParallelTransition puede ser en sí misma una SequentialTransition o una ParallelTransition. Por ejemplo, suponga que tiene tres transiciones que animan un nodo (t1, t2, y t3) Y una cuarta transición que anima a un segundo nodo (t4) Y que desea ejecutar t1, t2, y t3 en secuencia, mientras que t4 corre al mismo tiempo como la secuencia. He aquí cómo usted puede lograr que:

SequentialTransition s = new SequentialTransition (t1, t2, t3) ParallelTransition p = new ParallelTransition (s, t4) -p.play () -

Para ilustrar cómo las transiciones se pueden combinar en un programa completo, este listado muestra una variación.

importar javafx.application * -. javafx.stage import * -. javafx.scene import * -. javafx.scene.layout import * -. javafx.scene.shape importación. * -. javafx.scene.paint import * - JavaFX importación .animation * -.. javafx.util import * - TwoBouncingBalls clase pública se extiende Aplicación {main (String [] args) {static void públicos de lanzamiento (args) -} @ Override public void start (Etapa primaryStage) {radialGradient g = new radialGradient (0, 0,0.35, 0.35,0.5, es cierto, CycleMethod.NO_CYCLE, nueva parada (0,0, Color.white), nueva parada (1,0, Color.RED)) - Círculo ball1 = new Circle (0,0,20) -ball1.setFill (g) -Círculo ball2 = new Circle (0,0,20) -ball2.setFill (g) -Grupo root = nuevo Grupo () - root.getChildren () addAll (ball1, Ball2) -Escena. escena = new escena (de la raíz, 600, 600) -primaryStage.setScene (escena) -primaryStage.setTitle ("Dos Bouncing Balls") - primaryStage.show () - // pelota rebote 1TranslateTransition t1 = new TranslateTransition (Duration.millis ( 2000), ball1) -t1.setFromX (ball1.getRadius ()) - t1.setToX (scene.getWidth () - ball1.getRadius ()) - t1.setFromY (scene.getHeight () / 3) -t1.setToY (scene.getHeight () / 3)-t1.setCycleCount(Transition.INDEFINITE)-t1.setAutoReverse(true)-t1.setInterpolator(Interpolator.LINEAR)-// T2 pelota rebote 2TranslateTransition = new TranslateTransition (Duration.millis (2000), ball2) -t2.setFromX (scene.getWidth () - ball2.getRadius ()) - t2.setToX (ball2.getRadius ()) - t2.setFromY ( scene.getHeight () / 3 * 2) -t2.setToY (scene.getHeight () / 3 * 2)-t2.setCycleCount(Transition.INDEFINITE)-t2.setAutoReverse(true)-t2.setInterpolator(Interpolator.LINEAR)-// Rebote dos bolas al mismo pt timeParallelTransition = new ParallelTransition (t1, t2) -pt.play () -}}

Esta versión del programa anima dos bolas que viajan en direcciones opuestas. Una transición se crea en la primera bola de rebote de izquierda a derecha, un tercio del camino hacia la escena.

Se crea una transición para la segunda bola para animarlo en la dirección opuesta de dos tercios del camino por la escena. Entonces un ParallelTransition se utiliza para animar las dos bolas al mismo tiempo. La figura muestra el programa en acción.

Despidiendo dos bolas con JavaFX.
Despidiendo dos bolas con JavaFX.



» » » » ¿Cómo combinar transiciones en javafx