我有一個窗口顯示一個視頻流,其中包含一個twitter feed作爲疊加層。 當顯示新的推文時,使用旋轉動畫生成當前推文,並將下一條推文旋轉到視圖中。動畫使用RotateTransition
執行。JavaFX動畫閃爍
該應用程序還可以在不同的攝像頭之間切換以顯示不同的流。爲了指示應用何時切換到下一個攝像頭,我有一個進度條,使用Timeline
對象填充。
這很好,直到我調整窗口大小。隨着漸進式填充,旋轉動畫隨着進度條開始閃爍。
作爲測試,我禁用了視頻流,看看發生了什麼。那時'artifact'不會出現,我可以根據需要調整大小。如果我播放流並且不調整大小,那麼一切正常。
該視頻播放器基於VLCJ,但實際像素是在WritableImage
的Imageview
上繪製的。
請參閱下列說明問題的圖像。
在你可以看到2個不同的進度條(一ProgresBar
和ProgressIndicator
)的右下角。
閃爍結果的一部分在第二張圖像下仍然可見。它以某種方式保持可見,可能是因爲該區域未被重繪。
任何想法是什麼使閃爍發生?我能做些什麼來解決或避免這種情況?
我嘗試了IntelliJ中的一些VM選項:-Dsun.java2d.d3d=true -Dprism.forceGPU=true
以某種方式啓用硬件加速,但這似乎沒有幫助。
禁用進度條填充動畫也沒有幫助。