¿Cómo combinar las 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 la ParallelTransition clase le permite ejecutar varias transiciones a la vez.

Ambas clases tienen constructores simples que aceptan una lista de transiciones como argumentos y una 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 como esto:

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

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

Video: Transiciones en JavaFX

Para ejecutar las tres transiciones al mismo tiempo, utilizar el ParallelTransition clase en lugar:

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

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

Video: MEZCLAR TRACKS A DIFERENTES TEMPOS (ejemplos)

ParallelTransition p = new ParallelTransition () p.getChildren () añadir (t1) -p.getChildren () añadir (t2) -p.getChildren () añadir (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, supongamos que tiene tres transiciones que animan un nodo (t1, t2, y t3) Y un cuarto de transición que se anima un segundo nodo (t4) Y que desea ejecutar t1, t2, y t3 en secuencia mientras t4 corre al mismo tiempo como la secuencia. He aquí cómo se 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 importación * -. javafx.scene importación * -. javafx.scene.layout importación * -. javafx.scene.shape importación * -.. javafx.scene.paint importación * - javafx importación .Animación * -.. javafx.util importación * - TwoBouncingBalls clase pública se extiende aplicación {void main (String [] args) {public static 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, nuevo Stop (0.0, Color.white), nuevo Stop (1.0, Color.RED)) - ball1 Circle = new círculo (0,0,20) -ball1.setFill (g) -Círculo ball2 = new círculo (0,0,20) -ball2.setFill (g) -Grupo root = nuevo Grupo () - root.getChildren () addAll (ball1, ball2) -Escena. = escena nueva escena (raíz, 600, 600) -primaryStage.setScene (escena) -primaryStage.setTitle ("Dos pelotas de rebote") -primaryStage.show () - // rebote de la pelota 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) - // rebote de la pelota 2TranslateTransition t2 = 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) - // rebotar las 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 a rebotar de izquierda a derecha de un tercio del camino hacia abajo de la escena.

Una transición se crea para el segundo balón para animar en la dirección opuesta de dos tercios del camino hacia abajo de la escena. Entonces un ParallelTransition se utiliza para animar las dos bolas al mismo tiempo. La figura muestra el programa en acción.

Rebote dos bolas con JavaFX.

Video: Java Fxml And Java Fx Table View Operations

Rebote dos bolas con JavaFX.
Artículos Relacionados