Animation JavaFX动画正在闪烁
我有一个窗口显示一个视频流,其中有一个twitter提要作为覆盖。 显示新tweet时,当前tweet将使用旋转动画进行动画输出,下一条tweet将旋转到视图中。使用Animation JavaFX动画正在闪烁,animation,javafx,flicker,artifacts,Animation,Javafx,Flicker,Artifacts,我有一个窗口显示一个视频流,其中有一个twitter提要作为覆盖。 显示新tweet时,当前tweet将使用旋转动画进行动画输出,下一条tweet将旋转到视图中。使用旋转变换执行动画 该应用程序还可以在不同的摄像头之间切换,以显示不同的流。为了指示应用程序何时切换到下一个摄像头,我有一个progressbar,它使用时间线对象填充 这很好,直到我调整窗口的大小。随着进度条逐渐填充,旋转动画开始闪烁 作为测试,我禁用了视频流,以查看发生了什么。“工件”不会出现,我可以随意调整大小。如果我播放流,不
旋转变换执行动画
该应用程序还可以在不同的摄像头之间切换,以显示不同的流。为了指示应用程序何时切换到下一个摄像头,我有一个progressbar,它使用时间线对象填充
这很好,直到我调整窗口的大小。随着进度条逐渐填充,旋转动画开始闪烁
作为测试,我禁用了视频流,以查看发生了什么。“工件”不会出现,我可以随意调整大小。如果我播放流,不调整大小,一切都很好
视频播放器基于VLCJ,但实际像素绘制在图像视图中的可写图像上
请参见以下说明问题的图像
在右下角,您可以看到两个不同的进度条(一个ProgresBar
和一个ProgressIndicator
)
闪烁结果的一部分在第二幅图像下方仍然可见。它以某种方式保持可见,可能是因为该区域没有重新绘制
知道是什么让闪烁发生的吗?我能做些什么来修复或避免这个问题
我在IntelliJ中尝试了一些VM选项:-Dsun.java2d.d3d=true-Dprism.forceGPU=true
以某种方式启用硬件加速,但这似乎没有帮助
禁用progressbar填充动画也无济于事。我遇到了一些圆弧和形状的类似问题,这些圆弧和形状在属性/大小更改时会闪烁
我的问题的解决方案是确保用于更改形状的方法是从JavaFX线程内部调用的
Platform.runLater(() -> {
arc.setStartAngle(30);
arc.setLength(45);
}