Java 时间轴动画未按预期工作
我好久没来了,当然直到现在 问题是,有一段代码我正拼命想让它工作:Java 时间轴动画未按预期工作,java,animation,javafx-2,Java,Animation,Javafx 2,我好久没来了,当然直到现在 问题是,有一段代码我正拼命想让它工作: private Timeline timeline = createTimeline(); timeline.play(); public Timeline createTimeline() { Timeline timeline = new Timeline(); timeline.setDelay(new Duration(1000)); timeline.getKeyFrames().addAll( new
private Timeline timeline = createTimeline();
timeline.play();
public Timeline createTimeline() {
Timeline timeline = new Timeline();
timeline.setDelay(new Duration(1000));
timeline.getKeyFrames().addAll(
new KeyFrame(Duration.ZERO, new KeyValue(imageProperty(), moveOneStep())),
new KeyFrame(new Duration(250), new KeyValue(imageProperty(), moveOneStep())));
timeline.setCycleCount(Timeline.INDEFINITE);
return timeline;
}
public Image moveOneStep() {
return getNextImage();
}
private Image getNextImage() {
imgCount++;
if (imgCount > 2)
imgCount %= 3;
return images[imgCount];
}
问题是,尽管我尝试过在关键帧之前和之后将循环计数设置为不确定,但它似乎根本没有重复。我对这件事有点困惑
提前感谢。您似乎需要定义一个“关闭关键帧”,以便在最后一个关键帧可以播放之前,关闭关键帧。我怀疑,这是“设计”还是错误
timeline.getKeyFrames().addAll(
new KeyFrame(Duration.ZERO, new KeyValue(imageProperty(), moveOneStep())),
new KeyFrame(new Duration(250), new KeyValue(imageProperty(), moveOneStep())),
new KeyFrame(new Duration(500));
您可以使用ChangeListener跟踪任何属性的更改,例如:
imageProperty().addListener(new ChangeListener<Image>() {
@Override
public void changed(ObservableValue<? extends Image> observable, Image oldValue, Image newValue) {
System.out.println("imageProperty oldValue " + oldValue);
System.out.println("imageProperty newValue " + newValue);
System.out.println("");
}
});
imageProperty().addListener(新的ChangeListener()){
@凌驾
public void已更改(observeValueOh,谢谢,但我自己确实找到了答案。我多么愚蠢地认为,每次调用第二个关键帧时,该属性都会更改。相反,该属性会根据我们的方法逐渐更改。我所需要的只是创建一个自定义事件处理程序,并每250毫秒调用一次。