Hallo,
in meiner JavaFX Anwendung lasse ich ein ImageView quer über ein Pane hin und her bewegen und rotieren. mit PathTransition
Das sieht bei mir aus wie folgt:
Während des Programmablaufs wird ein Ereignis ausgelöst, bei dem die Animation stoppen soll und das ImageView in seiner ursprünglichen Rotationseinstellung dargestellt werden soll.
Ich hab noch viel mehr ausprobiert! Ich hab versucht daraus ne Animation zu machen mit PathTransition usw. Das Stoppen der Animation ist auch kein Problem. Aber an der Rotation tut sich nichts. Aber eigentlich sehe ich das nicht ein, wieso funktioniert es nicht einfach mit der setRotate Methode. Dafür gibt es die doch oder etwa nicht?
in meiner JavaFX Anwendung lasse ich ein ImageView quer über ein Pane hin und her bewegen und rotieren. mit PathTransition
Das sieht bei mir aus wie folgt:
Java:
protected ImageView iv;
protected double currentX;
protected double currentY;
protected PathTransition animation;
public void animate(int speed) {
animation = new PathTransition();
animation.setDuration(Duration.millis(speed));
animation.setPath(createPath());
animation.setNode(iv);
animation.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
animation.setCycleCount(1);
animation.setAutoReverse(true);
animation.setOnFinished(e -> {
animation.setPath(createPath());
animation.play();
});
animation.play();
}
public void stopAnimation() {
animation.stop();
}
private Path createPath() {
Path path = new Path();
path.getElements().add(new MoveTo(currentX, currentY));
currentX = Helper.random(600);
currentY = Helper.random(400);
path.getElements().add(new LineTo(currentX, currentY));
return path;
}
Während des Programmablaufs wird ein Ereignis ausgelöst, bei dem die Animation stoppen soll und das ImageView in seiner ursprünglichen Rotationseinstellung dargestellt werden soll.
Java:
public void blabla() {
stopAnimation();
iv.setRotate(0);
}
Ich hab noch viel mehr ausprobiert! Ich hab versucht daraus ne Animation zu machen mit PathTransition usw. Das Stoppen der Animation ist auch kein Problem. Aber an der Rotation tut sich nichts. Aber eigentlich sehe ich das nicht ein, wieso funktioniert es nicht einfach mit der setRotate Methode. Dafür gibt es die doch oder etwa nicht?