2012-10-19 40 views
1

我試圖創建一個簡單的動畫移動的圓圈一個像素在JavaFX的2.X左,動畫作品,但我每當我試圖發起第二次,它不了。我已經試過幾件事情,這裏是代碼:回收一個JavaFX動畫

public void handle(KeyEvent t) { 
    if (t.getCode() == KeyCode.LEFT) { 
     final KeyValue kv = new KeyValue(testPuck.translateXProperty(), -1); 
     final KeyFrame kf = new KeyFrame(Duration.millis(50), kv); 
     timeLineToLeft.getKeyFrames().add(kf); 
     timeLineToLeft.play(); 
    } 
} 

我已經試過檢查,如果時間軸不等於空,並且移除關鍵幀/鍵值,然後再加入他們後。但那也沒有幫助。 在這個問題上的任何幫助?關於這個問題的文件似乎很少。 在此先感謝。

回答

0

動畫只有一個KeyFrame - 最後一個,有testPuck位於-1點。 秒鐘後,因此叫你添加新的KeyFrame從點移至冰球-1點-1並沒有任何反應。

嘗試下一個:

注意我每次重新Timeline,那裏是沒有理由保持它:

public void handle(KeyEvent t) { 
    if (t.getCode() == KeyCode.LEFT) { 
     Timeline timeLineToLeft = new Timeline(); 
     final KeyValue kv = new KeyValue(testPuck.translateXProperty(), 
      testPuck.getTranslateX() -1); // note we calculate new value every time 
     final KeyFrame kf = new KeyFrame(Duration.millis(50), kv); 
     timeLineToLeft.getKeyFrames().add(kf); 
     timeLineToLeft.play(); 
} 

如果你真的想重用Timeline對象,首先要明確它:

timeLineToLeft.getKeyFrames().clear(); 
    //... 
    timeLineToLeft.playFromStart();