JavaFX:特定时间的调用方法

时间:2017-06-04 19:42:31

标签: java javafx

有没有办法简单地让方法在特定的帧或时间运行? 我已经阅读了时间轴和Keyframe + KeyValue文档,对于我想要实现的目标而言似乎有些过分。 我试图得到像这样简单的东西,(参考我的伪君子):

atTime(Duration.millis(2000)){
     myMethod();
   } //do this at the time 00:00:02
atTime(Duration.millis(3000)){
     myMethod();
   } //do this at the time 00:00:03
atTime(Duration.millis(5000)){
     myMethod();
   } //do this at the time 00:00:05

当我的方法被调用时,我会保持计时,直到我希望它停止。 有没有办法实现这一点,而不使用围绕关键帧和键值的复杂方法?

1 个答案:

答案 0 :(得分:3)

您可以使用Timeline

以非常简单的方式执行此操作
Timeline timeline = new Timeline(
    new KeyFrame(Duration.seconds(2), e -> myMethod()),    
    new KeyFrame(Duration.seconds(3), e -> myMethod()),
    new KeyFrame(Duration.seconds(5), e -> myMethod())
);

// If you want to repeat indefinitely:
timeline.setCycleCount(Animation.INDEFINITE);

timeline.play();