首页 > 解决方案 > 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();
}



标签: javaanimationjavafx

解决方案


推荐阅读