我正在使用 JavaFX 开发一个小型 GUI 来完成作业。以前从未使用过 JavaFX,我使用或学到的大部分内容都是我自己研究的。我的大部分应用程序运行顺利,包括动画。
我有一个小的用户输入部分:
我试图让它在加载下一个场景之前向左滑动,给用户一种顺序的印象。我使用由 TranslationTransitions 填充的 ParallelTransition 实现了这一点,在其中加载所有这些节点。
但是,就在它开始动画之前,它似乎将所有内容都对齐了。
我有一种感觉,这与我在其中放置这些对象的容器(AnchorPane)有关,或者与我未设置的某些未定义属性有关。由于我是在匆忙中学习这一切,因此缩小范围有点困难。谁能告诉我造成这种情况的原因以及如何保持对齐?每个节点按以下方式移动:
translateTransition.setFromX(node.getLayoutX());
translateTransition.setToX(node.getLayoutX()-500.00);
如果我遗漏了任何相关信息,请告诉我!
最佳答案
所以,我的问题出在我布置对象的方式上。将它们放置在仅具有特定属性的任意 AnchorPane 中来定位这些项目意味着,在动画时,它将对这些对象进行分组并相应地对它们进行动画处理。这是布局这些节点的错误方法。
相反,我将它们放置在 VBox 中,这有两个优点。
我可以对齐 VBox 中心的内容,因此不需要指定元素的确切布局属性。
我可以使用单个 VBox 来制作动画,而不是使用 ParallelTransition 中的所有元素。因此,VBox 节点上的单个 TranslateTransition 就足够了!
关于JavaFX 元素在动画之前对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40453523/