2013-05-01 49 views
2

在我的smithchart項目中,我嘗試對弧進行動畫製作。我通過f計算了啓動和停止角度,它返回了一個double,但是找不到使用這個角度的方法。重點是具有雙重類型的角度不能在接受WriteableValue的KeyValue中使用。使用時間線設計動畫

double angle; 
angle = f(); 
KeyValue keyAngle = new KayValue(angle, 360.0); 

對於WritableValue也投射角度沒有效果。 有什麼辦法可以使這項工作?

回答

1

動畫API與屬性(實現WritableValue)一起使用。因此,如果你想用動畫來改變你的圓弧startAngle你應該提供Arc#startAngleProperty()KeyValue

KeyValue kv = new KeyValue(arc.startAngleProperty(), my_double_angle_value); 

動畫圓弧的例子:

Arc arc = ArcBuilder.create() 
      .centerX(150) 
      .centerY(150) 
      .radiusX(100) 
      .radiusY(50) 
      .startAngle(0) 
      .length(30) 
      .type(ArcType.ROUND) 
      .fill(Color.RED) 
      .build(); 

    Pane root = new Pane(); 
    root.getChildren().add(arc); 

    Scene scene = new Scene(root, 300, 250); 
    primaryStage.setTitle("Hello Arc!"); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 

    KeyValue kv = new KeyValue(arc.startAngleProperty(), 360); 
    KeyFrame kf = new KeyFrame(Duration.seconds(3), kv); 

    Timeline timeline = new Timeline(); 
    timeline.setAutoReverse(false); 
    timeline.setCycleCount(Timeline.INDEFINITE); 
    timeline.getKeyFrames().add(kf); 
    timeline.play();