Wie Transitions in JavaFX zu kombinieren

JavaFX bietet zwei Übergangsklassen, die Sie Übergänge kombinieren sind so konzipiert, dass so, dass zwei oder mehr Übergänge nacheinander ausgeführt werden oder zur gleichen Zeit. Das SequentialTransition Klasse können Sie mehrere Übergänge nacheinander ausgeführt werden, während die ParallelTransition Klasse können Sie mehrere Übergänge laufen.

Beide Klassen haben einfache Konstrukteuren, die eine Liste von Übergängen als Argumente und akzeptieren spielen Methode, die Sie starten, um die Animationen können. Zum Beispiel, wenn Sie drei Übergänge mit dem Namen t1, t2, und t3 bereits erstellt haben, können Sie sie in der Reihenfolge wie folgt ausführen:

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

Wenn das spielen Methode aufgerufen wird, Übergangs- t1 bis zur Fertigstellung und dann Übergang läuft t2 werde rennen. Wann t2 Oberflächen, Übergang t3 wird ausgeführt.

Um alle drei Übergänge gleichzeitig laufen, verwenden Sie die ParallelTransition Klasse statt:

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

Wenn Sie möchten, können Sie Animationen hinzufügen, nachdem der Konstruktor wurde durch die Verwendung der aufgerufen wurde getChildren Verfahren. Beispielsweise:

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

Oder:

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

Eine Animation hinzugefügt, um eine SequentialTransition oder ParallelTransition kann selbst ein SequentialTransition oder ein ParallelTransition. Zum Beispiel: Angenommen, Sie drei Übergänge haben, die einen Knoten animieren (t1, t2, und t3) Und einen vierten Übergang, der einen zweiten Knoten animiert (t4) Und Sie ausführen möchten t1, t2, und t3 in Folge, während t4 läuft in der gleichen Zeit wie die Sequenz. Hier ist, wie man das erreichen kann:

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

Um darzustellen, wie Übergänge können zu einem kompletten Programm kombiniert werden, zeigt diese Liste eine Variation.

importieren javafx.application. * - Import javafx.stage. * - Import javafx.scene. * - Import javafx.scene.layout. * - Import javafx.scene.shape. * -. Import javafx.scene.paint * - Import javafx .Animation. * -. Import javafx.util * - public class TwoBouncingBalls erstreckt Anwendung {public static void main (String [] args) {Start (args) -} @ außer Kraft setzen public void Start (Stufe primaryStage) {RadialGradient g = new RadialGradient (0, 0,0.35, 0.35,0.5, wahr, CycleMethod.NO_CYCLE, neue Stop (0.0, Color.White), neue Stop (1.0, Color.RED)) - Kreis ball1 = new Kreis (0,0,20) -ball1.setFill (g) -Kreis ball2 = new Kreis (0,0,20) -ball2.setFill (g) -Group root = new Group () - root.getChildren () addAll (ball1, ball2) -Szene. Szene = new Szene (root, 600, 600) -primaryStage.setScene (Szene) -primaryStage.setTitle ( "Two Bouncing Balls") - primaryStage.show () - // neue TranslateTransition Bounce Ball 1TranslateTransition t1 = (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)-// Bounce Ball 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 beide Kugeln in der gleichen timeParallelTransition pt = new ParallelTransition (T1, T2) -pt.play () -}}

Diese Version des Programms beseelt zwei Kugeln in entgegengesetzte Richtungen bewegen. Ein Übergang ist auf dem ersten Ball schaffte es auf die Beine von links ein Drittel der Weg nach unten die Szene nach rechts.

Ein Übergang ist für die zweite Kugel erstellt es in die entgegengesetzte Richtung zwei Drittel der Weg nach unten die Szene zu animieren. Dann ein ParallelTransition wird verwendet, um beide Bälle gleichzeitig zu animieren. Die Abbildung zeigt das Programm in Aktion.

Bouncing zwei Kugeln mit JavaFX.
Bouncing zwei Kugeln mit JavaFX.

Menü