如何在JavaFX中使gif动画在特定时间内可见?

时间:2017-08-23 12:15:06

标签: java animation javafx animated-gif

我在JavaFX中制作一个简单的游戏,我希望在角色战斗时显示动画。当我点击“攻击”时按钮我想显示' fight.gif'动画。当没有点击任何我想要的另一个' waitForAction.gif'要显示。问题是我想要这个' fight.gif'要显示特定的时间,所以可以在“等待”之前看到整个动画。将再次显示。

所以我的问题是:

GIF是个不错的主意吗?如果是,如何控制它们? 如果没有,如何使这些动画有效?

如果您有理解上的问题,我可以发布我想要达到的图片。

2 个答案:

答案 0 :(得分:1)

使用Timeline。例如。要显示2秒的GIF,你可以这样做:

Timeline timeline = new Timeline(
    new KeyFrame(Duration.ZERO, e -> { /* display fight.gif */}),
    new KeyFrame(Duration.seconds(2), e -> { /* hide fight.gif */})
);
timeline.play();

这种方式的工作方式是时间轴由一系列关键帧组成。每个关键帧都有一个与之关联的时间(时间线上的时间点),在本例中,还有一个要在此时调用的动作。因此,在这种情况下,时间轴开始后零秒,显示fight.gif,并且在时间轴开始后2秒,隐藏fight.gif。时间轴是通过调用其play()方法开始的。

一般情况下,只要您希望自己的用户界面在某个特定时间执行某项操作,某种动画可能会提供一种简单的解决方案。

答案 1 :(得分:-1)

您可以使用时间轴来提供间隔持续时间

    USE INFORMATION_SCHEMA;
    SELECT TABLE_SCHEMA, TABLE_NAME
    FROM information_schema.tables
    WHERE TABLE_TYPE LIKE 'VIEW';