JavaFX TimeLine / KeyFrame

missy72

Bekanntes Mitglied
Moin zusammen,

ich möchte gerne wissen wie ich die Duration in der TimeLine bzw. im KeyFrame im Verlauf des Programmes ändern kann.
Auslesen mit dem "Getter" ist kein Problem, aber ich finde keine Lösung den Wert neu zu setzten.
Danke. MfG M.B.

[CODE lang="java" title="Timeline / Keyframe"]// Initialisierung
Timeline gameTimeLine = new Timeline();
KeyFrame gameKeyFrame = new KeyFrame(Duration.seconds(1), new EventHandler<ActionEvent>() {}

// Fehlgeschlagene Versuche
gameTimeLine.getCycleDuration().add(Duration.seconds(2));
gameKeyFrame.getTime().add(Duration.seconds(2.0));


[/CODE]
 

mrBrown

Super-Moderator
Mitarbeiter
Soweit ich weiß, lässt sich das nicht ändern.

Wenn du eine andere Animation brauchst, erstell doch einfach eine neue, anstatt die bestehende zu ändern?
 

missy72

Bekanntes Mitglied
Schade eigentlich.
Ich wollte die Spielgeschwindigkeit ändern.
Es kam mir als die einfachste Lösung vor, die Frequenz anzupassen.
Danke für die Aussage. MfG M.B.
 
K

kneitzel

Gast
Ich wollte die Spielgeschwindigkeit ändern.

Die Geschwindigkeit einer Animation lässt sich mittels setRate einstellen.

setRate(1.0) -> normale Geschwindigkeit.
setRate(2.0) -> doppelte Geschwindigkeit
setRate(0.5) -> halbe Geschwindigkeit.

Kann man einfach austesten. Nehmen wir einfach mal ein Beispiel für eine Animation:
(War das erste, das ich gefunden habe).

Und dann lässt es sich natürlich anpassen, z.B.:
[CODE lang="java" highlight="3"] pane.addEventHandler(MouseEvent.MOUSE_PRESSED, e -> {
lastMousePos = new Point2D(e.getSceneX(), e.getSceneY());
tl.setRate(0.50);
tl.play();
});
[/CODE]

Nach dem Start läuft die Animation des schwarzen Kästchens einmal durch. Wenn man dann einmal klickt, dann läuft die veränderte Variante ...
 

Oben