JavaFX多个动画矩形

时间:2019-05-25 22:50:52

标签: java animation javafx

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



0 个答案:

没有答案