如何减慢javafx动画的速度

时间:2015-02-03 03:22:21

标签: animation javafx

我正在尝试让stage.show()慢下来。我想出我可能需要设置KeyFrame,但是卡在KeyValue上,不理解T endValue或Interpolator插值器。这是正确的方法吗?如果是这样,任何人都可以向我解释什么类型是T.

谢谢!

3 个答案:

答案 0 :(得分:1)

控制动画速度

animation's speed主要由其rate控制。改变动画的播放速度或动画的持续时间可能就是获得所需动画速度所需的全部内容。

animation.setRate(2) // play the animation at double speed.
animation.setRate(0.5) // play the animation at half speed.

On Interpolation

插补器是用于计算点之间的中间值的数学函数。这是关于interpolation的文章。

在JavaFX中,插值器用于定义easing functions以更改动画关键帧之间的值。可能,对于你正在做的事情,直线内插器或易于进出内插器都可以(这是两个最常用的内插器)。大多数情况下,JavaFX使用的默认插补器就足够了,您无需更改它。

动画的表观速度也可能受到应用于动画键值的插值缓动函数或键值变化幅度(例如,平移的像素数,缩放次数)除以关键帧持续时间的影响。 。

进一步参考

如果您不明白这意味着什么,请阅读JavaFX animation documentation,它将定义所引用的术语,并提供有关如何使用它们的示例。

您问题中的其他条目

你想做什么(“stage.show()减速”)在动画的背景下对我来说是模棱两可的,所以我无法建议一种方法 - 因为TheJeed正确地说明了stage.show()是不是动画,所以尝试将动画应用于stage.show()调用是没有意义的。

KeyValue上下文中的

Tgeneric type,它似乎回答了您问题中的问题,而不是您标题中的问题。

答案 1 :(得分:1)

如果stage.show()是JavaFX stage,则无法减慢Stage,因为这不是动画。

答案 2 :(得分:0)

我同意这个问题很难问。我没有正确的方法。只需更改thread.sleep()即可完成工作。

但不管怎样,谢谢你们!