2013-06-27 44 views
0

我寫了一個執行一些長時間運行任務的小應用程序。我不想讓用戶等待並看到進度條,而是想顯示一些(更改)關於應用程序的信息。JavaFX:暫停轉換,不等於時間

爲此,我寫擴展Pane的構造內的以下代碼:

FadeTransition fadeOutTransition = new FadeTransition(Duration.millis(1000), this); 
fadeOutTransition.setFromValue(0.8); 
fadeOutTransition.setToValue(0.0); 

同樣的fadeInTransition。並進一步...

SequentialTransition seqTransition = new SequentialTransition (
     new Transition() { 
     { setInterpolator(Interpolator.DISCRETE); 
      setCycleDuration(Duration.seconds(1)); } 

      protected void interpolate(double frac) { 
       int nextElement = (int) ((explenations.size() - 1) * Math.random()); 

       Explenation explenation = explenations.get(nextElement); 
       questionLabel.setText(explenation.getQuestion()); 
       answerLabel.setText(explenation.getAnswer()); 
      } 
     }, 
     fadeInTransition, 
     new PauseTransition(Duration.seconds(15)), 
     fadeOutTransition 
); 

我woud喜歡的是淡入,在那裏停留約15秒,然後再次淡出的文本。不幸的是,動畫閃爍,移動得越來越快 - 而且PauseTransition從不需要15秒!代碼有什麼問題?我使用的Java 7,和JavaFX 2.2在Mac OS X

回答

0

這個問題似乎是我調用的函數

seqTransition.play(); 

多次。從那裏可能會出現閃爍和不平等的等待時間。