2013-05-01 46 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();