Como combinar Transitions em JavaFX

JavaFX proporciona duas classes de transição que são concebidas para que possa combinar as transições de modo que duas ou mais transições de executar um após o outro ou ao mesmo tempo. o SequentialTransition classe permite que você execute várias transições um após o outro, enquanto o ParallelTransition classe permite que você execute várias transições de uma só vez.

Ambas as classes têm construtores simples que aceitam uma lista de transições como argumentos e uma Toque método que lhe permite iniciar as animações. Por exemplo, se você tem três transições chamado t1, t2, e t3 já criado, você pode executá-los em seqüência como este:

SequentialTransition s = novo SequentialTransition (T1, T2, T3) s.play () -

Quando o Toque método é chamado, transição t1 decorrerá até transição conclusão e, em seguida, t2 correrá. Quando t2 acabamentos, transição t3 será executado.

Para executar todos os três transições em simultâneo, utilizar o ParallelTransition classe em vez disso:

ParallelTransition p = novo ParallelTransition (T1, T2, T3) p.play () -

Se preferir, você pode adicionar animações após o construtor foi chamado usando a getChildren método. Por exemplo:

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

Ou:

. = Novo ParallelTransition () p.getChildren () addAll (T1, T2, T3) -p.play ParallelTransition P () -

Uma animação adicionado a uma SequentialTransition ou ParallelTransition propriamente dito pode ser um SequentialTransition ou um ParallelTransition. Por exemplo, suponha que você tenha três transições que animam um nó (t1, t2, e t3) E uma quarta transição que anima um segundo nó (t4) E você deseja executar t1, t2, e t3 em sequência, enquanto t4 funciona ao mesmo tempo como a sequência. Veja como você pode conseguir isso:

SequentialTransition s = novo SequentialTransition (T1, T2, T3) ParallelTransition p = novo ParallelTransition (s, T4) -p.play () -

Para ilustrar como transições podem ser combinados em um programa completo, este perfil mostra uma variação.

importar javafx.application. * - import javafx.stage. * - import javafx.scene. * - import javafx.scene.layout. * - import javafx.scene.shape. * -. importação javafx.scene.paint * - javafx importação .animation. * -. importação javafx.util * - TwoBouncingBalls classe pública estende a aplicação {void main (String [] args) public static {lançamento (args) -} @ Substituir início public void (Stage primaryStage) {RadialGradient g = new RadialGradient (0, 0,0.35, 0.35,0.5, verdadeiro, CycleMethod.NO_CYCLE, novo Stop (0.0, Color.White), novo Stop (1.0, Color.RED)) - Circle ball1 = new Circle (0,0,20) -ball1.setFill (g) -Circle ball2 = new Circle (0,0,20) -ball2.setFill (g) -Grupo raiz = new Group () - root.getChildren () addAll (ball1, Ball2) -Cena. cena = new Scene (root, 600, 600) -primaryStage.setScene (cena) -primaryStage.setTitle ( "Dois Bouncing Balls") - primaryStage.show () - // Bounce 1TranslateTransition bola 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 = rejeição 2TranslateTransition bola novo 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)-// Saltar as duas bolas ao mesmo timeParallelTransition pt = new ParallelTransition (T1, T2) -pt.play () -}}

Esta versão do programa anima duas bolas que viajam em direções opostas. Uma transição é criado na primeira bola a saltar-o da esquerda para a direita, um terço do caminho para baixo a cena.

Uma transição é criado para a segunda bola para animá-lo na direção oposta de dois terços do caminho para baixo a cena. Então uma ParallelTransition é utilizado para animar ambas as bolas ao mesmo tempo. A figura mostra o programa em acção.

Saltando duas bolas com JavaFX.
Saltando duas bolas com JavaFX.

menu