为了账号安全,请及时绑定邮箱和手机立即绑定

如何暂停 AnimationTimer 设定的秒数?

如何暂停 AnimationTimer 设定的秒数?

慕斯王 2022-12-21 10:00:22
我目前正在开发一款使用 JavaFX 制作的游戏,我想知道如何将 AnimationTimer 暂停一定的秒数?我尝试使用 Thread.sleep,但它会导致整个窗口冻结。任何帮助将不胜感激,如果需要我可以提供代码。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您可以创建一个PauseTransition在经过一定时间后启动计时器的计时器。


void pauseTimerForDuration(AnimationTimer timer, Duration duration) {

    PauseTransition pt = new PauseTransition(duration);

    pt.setOnFinished(event -> timer.start());


    timer.stop();

    pt.play();

}

注意:这里使用javafx.util.Duration,而不是java.time.Duration。


如果您想要可以重用的东西,那么您可以尝试使用Timeline.


Timeline createPauseTimerTimeline(AnimationTimer timer, Duration duration) {

    return new Timeline(

            new KeyFrame(Duration.ZERO, event -> timer.stop()),

            new KeyFrame(duration, event -> timer.play())

    );

}

然后将其存储在Timeline某个地方并playFromStart()在您想暂停计时器时调用。


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信