1 回答

TA貢獻2012條經(jīng)驗 獲得超12個贊
這里的問題是 的子級的初始狀態(tài)StackPane是錯誤的:所有節(jié)點都具有不透明度 1。當(dāng)沒有動畫運行時,您想要的狀態(tài)具有所有節(jié)點,但最后一個完全透明(不透明度 = 0),最后一個完全透明不透明(不透明度 = 1)。您應(yīng)該能夠通過正確初始化不透明度來解決問題:
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);
}
否則會發(fā)生以下情況:
就在pane1.toFront(). 請注意 (SequentialTransition確保已建立動畫開始的狀態(tài)。
最頂層的節(jié)點是列表中的最后一個子節(jié)點,----...位于可見“層”的旁邊。
Pane 1: opacity = 0
Pane 3: opacity = 1 ------------------------------
Pane 2: opacity = 1
現(xiàn)在,在完成前半部分后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()產(chǎn)生類似的結(jié)果:
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
添加回答
舉報