2015-01-06 86 views
0

我想在BorderPane的左节点上做一个TranslateTransition。我可以让节点在点击时“滑入”,但“滑出”不能按预期工作。这是代码片段。指挥颠倒TranslateTransition

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    vbx_lfpane.setVisible(false); 
}  

@FXML 
private void paneClicked(MouseEvent event) { 
    if(vbx_lfpane.isVisible()) { 
     vbx_lfpane.setVisible(false); 
     TranslateTransition tt1 = new TranslateTransition(Duration.millis(500), vbx_lfpane); 
     tt1.setFromX(vbx_lfpane.getLayoutBounds().getMinX()); 
     tt1.setToX(- (vbx_lfpane.getLayoutBounds().getMinX() + vbx_lfpane.getWidth())); 
     tt1.play(); 
    } else { 
     vbx_lfpane.setVisible(true); 
     vbx_lfpane.setTranslateX(-vbx_lfpane.getWidth()); 
     TranslateTransition tt2 = new TranslateTransition(Duration.millis(500), vbx_lfpane); 
     tt2.setByX(vbx_lfpane.getWidth()); 
     tt2.play(); 
    } 
} 

回答

1

您在开始的“滑出”过渡之前设置的vbx_lfpanefalse知名度。当转换完成时,您需要将可见性设置为false

tt1.setOnFinished(e -> vbx_lfpane.setVisible(false)); 
tt1.play();