Comment combiner les transitions dans javafx

JavaFX offre deux classes de transition qui sont conçus pour vous permettre de combiner les transitions de sorte que deux ou plusieurs transitions courir l'un après l'autre ou en même temps. La SequentialTransition classe vous permet d'exécuter plusieurs transitions un après l'autre, alors que le ParallelTransition classe vous permet d'exécuter plusieurs transitions à la fois.

Les deux classes ont constructeurs simples qui acceptent une liste de transitions comme arguments et un jouer méthode qui vous permet de démarrer les animations. Par exemple, si vous avez trois transitions nommé t1, t2, et t3 déjà créé, vous pouvez les exécuter dans l'ordre comme ceci:

= New SequentialTransition (t1, t2, t3) S.Play de SequentialTransition () -

Quand le jouer méthode est appelée, la transition t1 se déroulera jusqu'à la fin, puis la transition t2 se déroulera. Quand t2 finitions, la transition t3 sera exécuté.

Pour exécuter tous les trois transitions simultanément, utilisez la ParallelTransition classe à la place:




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

Si vous préférez, vous pouvez ajouter des animations après le constructeur a été appelé en utilisant le getChildren Procédé. Par example:

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

Ou:

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

Une animation ajouté à une SequentialTransition ou ParallelTransition peut lui-même être un SequentialTransition ou un ParallelTransition. Par exemple, supposons que vous avez trois transitions qui animent un noeud (t1, t2, et t3) Et une quatrième transition qui anime un deuxième noeud (t4) Et que vous souhaitez exécuter t1, t2, et t3 à la suite tout t4 exécute en même temps que la séquence. Voici comment vous pouvez réaliser ce qui suit:

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

Pour illustrer comment les transitions peuvent être combinés en un programme complet, cette annonce montre une variation.

importer javafx.application * -. javafx.stage d'importation * -. javafx.scene d'importation * -. javafx.scene.layout d'importation * -. javafx.scene.shape d'importation * -.. javafx.scene.paint d'importation * - javafx d'importation .animation * -.. javafx.util d'importation * - TwoBouncingBalls public class étend l'application {static void main (String [] args) {publiques lancement (args) -} @ Override début public void (étape primaryStage) {RadialGradient g = new RadialGradient (0, 0,0.35, 0.35,0.5, vrai, CycleMethod.NO_CYCLE, nouvel arrêt (0.0, Color.White), nouvel arrêt (1.0, Color.RED)) - Cercle ballon1 = new Circle (0,0,20) -ball1.setFill (g) -Cercle ball2 = new Circle (0,0,20) -ball2.setFill (g) -Groupe root = nouveau Groupe () - root.getChildren () addAll (ballon1, de Ball2) -Scene. = nouvelle scène Scène (racine, 600, 600) -primaryStage.setScene (scène) -primaryStage.setTitle ("Deux balles rebondissantes") - primaryStage.show () - // Balle 1TranslateTransition t1 = new TranslateTransition (Duration.millis ( 2000), ballon1) -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)-// Bounce balle 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)-// Bounce deux balles dans le même timeParallelTransition pt = new ParallelTransition (t1, t2) -pt.play () -}}

Cette version du programme anime deux balles qui voyagent dans des directions opposées. Une transition est créé sur la première balle de rebondir de gauche à droite un tiers de la descente de la scène.

Une transition est créé pour la deuxième balle de l'animer dans la direction opposée des deux tiers de la descente de la scène. Puis un ParallelTransition est utilisé pour animer les deux balles dans le même temps. La figure montre le programme en action.

Rebondissant deux boules avec JavaFX.
Rebondissant deux boules avec JavaFX.

» » » » Comment combiner les transitions dans javafx