我正在尝试创建一个函数,该函数在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();
}