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
添加回答
舉報
