Como combinar transições em javafx
JavaFX fornece duas classes de transição que são projetados para permitir que você combinar transições para que duas ou mais transições executar um após o outro ou ao mesmo tempo. o SequentialTransition
Conteúdo
Video: JavaFX Java GUI Tutorial - 14 - ComboBox
Ambas as classes têm construtores simples que aceitam uma lista de transições como argumentos e uma Toque método que 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 esta:
SequentialTransition s = new SequentialTransition (T1, T2, T3) s.play () -
Quando o Toque método é chamado, transição t1 decorrerá até transição de conclusão e, em seguida t2 correrá. Quando t2 acabamentos, transição t3 será executado.
Video: JavaFX Java GUI Tutorial - 13 - Listening for Selection Changes
Para executar todos os três transições simultaneamente, use o ParallelTransition classe em vez disso:
ParallelTransition p = new 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 () adicionar (t1) -p.getChildren () add (t2) -p.getChildren () adicionar (t3) -p.play ()... -
Ou:
. = New ParallelTransition () p.getChildren () addAll (T1, T2, T3) -p.play ParallelTransition p () -
Uma animação adicionado a uma SequentialTransition ou ParallelTransition em si pode ser um SequentialTransition ou um ParallelTransition. Por exemplo, suponha que tem 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, esta listagem 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 aplicativo {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, é verdade, CycleMethod.NO_CYCLE, novo Stop (0.0, Color.White), novo Stop (1.0, Color.RED)) - Círculo ball1 = new Circle (0,0,20) -ball1.setFill (g) -Circle ball2 = novo círculo (0,0,20) -ball2.setFill (g) -Grupo raiz = novo grupo de () - (root.getChildren) addAll (ball1, Ball2) -Cena. cena = new Scene (root, 600, 600) -primaryStage.setScene (cena) -primaryStage.setTitle ("Duas bolas quicando") -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 (verdadeiro) -T1. setInterpolator (Interpolator.LINEAR) - // Bounce 2TranslateTransition bola 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 (verdadeiro) -t2.setInterpolator (Interpolator.LINEAR) - // saltar ambas as bolas ao mesmo timeParallelTransition pt = novo 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-lo da esquerda para a direita de um terço do caminho para baixo a cena.
Video: JavaFX Drag and Drop for Internal and External Communication
Uma transição é criado para a segunda bola para animá-lo na direção oposta dois terços do caminho para baixo a cena. Em seguida, um ParallelTransition é utilizado para animar ambas as bolas ao mesmo tempo. A figura mostra o programa em ação.