1 回答
TA贡献2012条经验 获得超12个赞
这里的问题是 的子级的初始状态StackPane是错误的:所有节点都具有不透明度 1。当没有动画运行时,您想要的状态具有所有节点,但最后一个完全透明(不透明度 = 0),最后一个完全透明不透明(不透明度 = 1)。您应该能够通过正确初始化不透明度来解决问题:
root.getChildren().addAll(pane1, pane2, pane3);
// set opacity for all but the last child to 0
List<Node> children = root.getChildren();
for (int i = children.size()-2; i >= 0; i--) {
children.get(i).setOpacity(0);
}
否则会发生以下情况:
就在pane1.toFront(). 请注意 (SequentialTransition确保已建立动画开始的状态。
最顶层的节点是列表中的最后一个子节点,----...位于可见“层”的旁边。
Pane 1: opacity = 0
Pane 3: opacity = 1 ------------------------------
Pane 2: opacity = 1
现在,在完成前半部分后SequentialTransition,如下所示:
Pane 1: opacity = 0
Pane 3: opacity = 0
Pane 2: opacity = 1 ------------------------------
动画完成后:
Pane 1: opacity = 1 ------------------------------
Pane 3: opacity = 0
Pane 2: opacity = 1
使用pane3.toFront()产生类似的结果:
Pane 3: opacity = 0
Pane 1: opacity = 1 ------------------------------
Pane 2: opacity = 1
Pane 3: opacity = 0
Pane 1: opacity = 0
Pane 2: opacity = 1 ------------------------------
Pane 3: opacity = 1 ------------------------------
Pane 1: opacity = 0
Pane 2: opacity = 1
添加回答
举报