Wie kann ich meine Ladeanimation in Javafx beheben?Java

Java-Forum
Anonymous
 Wie kann ich meine Ladeanimation in Javafx beheben?

Post by Anonymous »

package com.example.messengerappfx.util;

import javafx.animation.AnimationTimer;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;

public class LoadingAnimation {

private final HBox container = new HBox(5);
private final Circle[] dots = new Circle[3];
private AnimationTimer timer;
private long animationDuration;
private long pauseDuration;
private double amplitude = 10;
private long startTime;

public LoadingAnimation(long animationDuration, long pauseDuration) {
this.animationDuration = animationDuration;
this.pauseDuration = pauseDuration;

initializeDots();
createAnimationTimer();
}

private void initializeDots() {
for (int i = 0; i < dots.length; i++) {
Circle dot = new Circle(4, Color.LIGHTGRAY);
dots = dot;
container.getChildren().add(dot);
}
}

private void createAnimationTimer() {
timer = new AnimationTimer() {
@Override
public void handle(long now) {
if (startTime == 0) startTime = System.nanoTime();

long elapsed = (now - startTime) / 1_000_000;
long totalCycleDuration = animationDuration + pauseDuration;
long currentCycleTime = elapsed % totalCycleDuration;

animateDots(currentCycleTime);
}
};
}

private void animateDots(long currentCycleTime) {
if (currentCycleTime < animationDuration) {
for (int i = 0; i < dots.length; i++) {
double delay = i * (animationDuration / 3.0);
double phase = Math.max(0, Math.min(1, (currentCycleTime - delay) / (double)animationDuration));
dots.setTranslateY(-amplitude * Math.sin(phase * Math.PI));
}
} else {
resetDots();
}
}

private void resetDots() {
for (Circle dot : dots) {
dot.setTranslateY(0);
}
}

public void start() {
startTime = 0;
timer.start();
}

public void stop() {
timer.stop();
}

public HBox getNode() {
return container;
}
}
< /code>
Wie kann ich meine Ladeanimation in Java fx beheben. Es wird bis zu einem bestimmten Punkt gestiegen, aber dann erfrischt es plötzlich die mittlere Animation. Benötigen Sie weitere Details, um mein Problem zu beheben? Wenn ja, kontaktieren Sie bitte einfach. Ich muss irgendwie genug Text lesen, weil ich zu viel Code habe. Bitte ignorieren Sie den folgenden Text. Dies ist ein Test. Dies ist ein Test.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post