【问题标题】:JavaFX animations are flickeringJavaFX 动画闪烁
【发布时间】:2015-12-17 21:57:59
【问题描述】:

我有一个窗口显示一个带有 twitter 提要的视频流作为叠加层。 当显示一条新推文时,当前推文会使用旋转动画进行动画处理,并且下一条推文会旋转到视图中。使用RotateTransition 执行动画。

该应用还可以在不同的摄像头之间切换以显示不同的流。为了指示应用何时切换到下一个摄像头,我有一个使用Timeline 对象填充的进度条。

这很好用,直到我调整窗口大小。旋转动画开始闪烁,随着进度条逐渐填满。

作为测试,我禁用了视频流,看看发生了什么。那时不会出现“工件”,我可以根据需要调整大小。如果我播放流并且不调整大小,则一切正常。

视频播放器基于 VLCJ,但实际像素是在 WritableImage 上绘制的 Imageview

请参阅以下说明问题的图片。

在右下角,您可以看到 2 个不同的进度条(ProgresBarProgressIndicator)。

部分闪烁结果在第二张图片下方仍然可见。它以某种方式保持可见,可能是因为该区域没有被重绘。

知道是什么导致了闪烁吗?我能做些什么来解决或避免这种情况吗?

我尝试了 IntelliJ 中的一些 VM 选项:-Dsun.java2d.d3d=true -Dprism.forceGPU=true 以某种方式启用硬件加速,但这似乎没有帮助。

禁用进度条填充动画也无济于事。

【问题讨论】:

    标签: animation javafx flicker artifacts


    【解决方案1】:

    我遇到了类似的问题,一些弧形和形状在其属性/大小更改时会闪烁。

    我的问题的解决方案是确保从 JavaFX 线程内部调用用于更改形状的方法。

    Platform.runLater(() -> {
        arc.setStartAngle(30);
        arc.setLength(45);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-02
      • 2012-03-12
      • 2011-03-30
      • 2011-08-23
      • 1970-01-01
      • 2011-01-04
      • 2014-07-22
      • 2012-07-10
      • 2013-01-24
      相关资源
      最近更新 更多