JavaFX中的java Timelina动画
我对JavaFX中的时间轴动画有一些问题。下面是我的代码部分:
Image img1 = new Image(getClass().getResource("images/img3.jpg").toString(), AppCommon.IMG_WIDTH, AppCommon.IMG_HEIGHT, false, false);
Image img2 = new Image(getClass().getResource("images/img2.png").toString(), AppCommon.IMG_WIDTH, AppCommon.IMG_HEIGHT, false, false);
KeyFrame keyImgLoad1 = new KeyFrame(Duration.seconds(0.1), new KeyValue(mImgLeft.imageProperty(), img1));
KeyFrame keyImgLoad2 = new KeyFrame(Duration.seconds(0.2), new KeyValue(mImgRight.imageProperty(), img1));
KeyFrame keyStartFade = new KeyFrame(Duration.seconds(6.0), new KeyValue(mImgLeft.opacityProperty(), 0.0));
KeyFrame keyendFade = new KeyFrame(Duration.seconds(8.0), new KeyValue(mImgLeft.opacityProperty(), 1.0));
KeyValue LeftX = new KeyValue(mImgLeft.xProperty(), 0);
KeyValue RightX = new KeyValue(mImgRight.xProperty(), AppCommon.IMG_WIDTH);
KeyFrame keyMoving = new KeyFrame(Duration.seconds(10), LeftX, RightX);
timelineOn.getKeyFrames().addAll(keyImgLoad1, keyImgLoad2, keyStartFade, keyendFade, keyMoving);
timelineOn.playFromStart();
没有任何错误,但所有帧在同一时间开始播放,其间没有任何延迟。 我想看看这样的东西:
- 将图像加载到ImageView中
- 等5秒钟李>
- 执行不透明度动画关键帧
- 等10秒李>
- 执行移动动画关键帧
所以一般来说,我的问题是如何在一个时间轴中实现关键帧之间的延迟?有人能帮忙吗
# 1 楼答案
好吧,幸好我的github上也有。但是,这是我和我的朋友在我们的动画雪人项目中创建的一种方法。布拉丹,我们就是这样做的
但是,我相信在您的情况下,您可能需要使用SequentialTransition。 这段代码同样来自同一个源代码,还涉及一个淡入淡出过渡(ft,ft1),两者的持续时间都设置为1000毫秒
试试这些尝试,让我知道它们是否有效
编辑:根据要求提供完整的源代码
# 2 楼答案
您需要向关键帧添加一个
onFinished()
并休眠一段时间。见Timeline Events