JavaFX:暂停转换,而不是相等的时间

时间:2013-06-27 13:45:03

标签: animation javafx-2 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
);

我喜欢的是要淡入的文字,在那里停留约15秒然后再淡出。不幸的是,动画闪烁,移动越来越慢 - 而PauseTransition从不需要15秒!代码有什么问题?我在Mac OS X上使用Java 7和JavaFX 2.2。

1 个答案:

答案 0 :(得分:0)

问题似乎是我调用了函数

seqTransition.play();

多次。从那里可能出现闪烁和不平等的等待时间。