JavaFX Несколько анимированных прямоугольников - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь создать функцию, которая создает анимацию в JavaFX прямоугольника, движущегося по прямой линии.У меня есть пара прямоугольников, поэтому я буду вызывать эту функцию пару раз.Я хочу, чтобы моя программа создала, скажем, 3 прямоугольника и переместила их до определенной конечной точки с постоянным промежутком между ними.Но когда один прямоугольник попадает в эту конечную точку, я хочу, чтобы он исчез, а затем снова появился внизу.Единственное решение, которое я придумала, это просто создать их все в одной и той же начальной точке, вызвать эту функцию, подождать некоторое время, а затем снова вызвать эту функцию, создав еще один прямоугольник.Он работает хорошо, но, поскольку он находится внутри функции инициализации, моя программа ждет несколько секунд, когда я его запускаю.Вы знаете какой-нибудь лучший способ?

 public void initialize() throws InterruptedException { 

        animatePlainWave(rect1);
        Thread.sleep(1500);
        animatePlainWave(rect2);
        Thread.sleep(1500);
        animatePlainWave(rect3);
        Thread.sleep(1500);
        animatePlainWave(rect4);
        Thread.sleep(1500);
        animatePlainWave(rect5);
}

public void animatePlainWave(Node rectangle)
{
    TranslateTransition rectangleTransition = new TranslateTransition();
    rectangleTransition.setDuration(Duration.seconds(rectangle.getLayoutY()/100)); 
    rectangleTransition.setToY(650-rectangle.getLayoutY()); 
    rectangleTransition.setAutoReverse(false);
    rectangleTransition.setCycleCount(TranslateTransition.INDEFINITE); 
    rectangleTransition.setNode(rectangle);
    rectangleTransition.rateProperty().bind(Bindings.divide(1d, mySlider.valueProperty()));
    rectangleTransition.play();
}



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...