2015-03-13 95 views
1

我在Java3D畫布上使用postRender()繪製了2D元素,並且想要爲這些元素設置動畫。在一個循環我叫Canvas3D.repaint():當我調用Canvas3D.repaint()時,爲什麼Java3D畫布會閃爍()

while(animationIsRunning){ 
    // I update positions of 2D elements here... 
    // ... 
    canvas3D.repaint(); 
    Thread.sleep((long)(1.0/30.0 * 1000)); 
} 

對於每一個動畫短片,這將導致整個3D畫布閃爍一次或兩次。

+1

您是否啓用雙緩衝? – Obicere 2015-03-13 18:27:17

+0

是的,它啓用,沒有幫助。 – Codev 2015-03-15 21:44:23

+0

該文檔說使用'postRender()'是不能完成的。這可能是問題。 – Obicere 2015-03-15 22:01:57

回答

2

我想我找到了我的情況的解決方案:

而不是

canvas3d.repaint(); 

我調用

canvas3d.getView().repaint(); 

這樣我可以更新我的高幀率動畫無閃爍。