java - 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();
}
解决方案
推荐阅读
- android - Navigation.findNavController() 找不到视图
- python - 如何使用 Python 登录和爬取网站?
- here-api - PDE 中 SPEED_LIMITS_VAR 层的用例是什么?
- graph - 在散点图中添加重叠趋势线,SPSS
- r - 如何在给定年份用 NA 替换 ALL 0 的列?
- scala - Spark sql 作业折叠成单个分区,为什么?
- networking - 如何将多个云与重叠的 VPC 连接起来?
- firebird - 将 fbk (Firebird) 转换为 CSV
- flutter - 在运行颤振代码时需要帮助来解决此问题
- javascript - 有没有办法给 raycaster three.js 一个偏移量?