リビジョン 247fcba8
| AnalogClockSvg/src/analogclocksvg/AnalogClockController.java | ||
|---|---|---|
|
* @author TAKAHASHI,Toru
|
||
|
*/
|
||
|
public class AnalogClockController implements Initializable {
|
||
|
|
||
|
private static double framerate;
|
||
|
@FXML
|
||
|
private SVGPath hourHand;
|
||
|
@FXML
|
||
| ... | ... | |
|
@FXML
|
||
|
private SVGPath secondHand;
|
||
|
|
||
|
public static void setTargetFramerate(double rate) {
|
||
|
framerate = rate;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void initialize(URL url, ResourceBundle rb) {
|
||
|
LocalTime now = LocalTime.now();
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
private Timeline createRotateTimeline(Duration duration, int startAngle, Rotate rotate) {
|
||
|
Timeline timeline = new Timeline();
|
||
|
Timeline timeline = new Timeline(framerate);
|
||
|
rotate.setAngle(startAngle);
|
||
|
timeline.getKeyFrames().add(new KeyFrame(duration, new KeyValue(rotate.angleProperty(), startAngle + 360)));
|
||
|
timeline.setCycleCount(Animation.INDEFINITE);
|
||
| AnalogClockSvg/src/analogclocksvg/AnalogClockSvg.java | ||
|---|---|---|
|
Platform.runLater(() -> zoom(Double.valueOf(params.getOrDefault("scale", "1.0"))));
|
||
|
Platform.runLater(() -> stage.setX(Double.valueOf(params.getOrDefault("x", "0.0"))));
|
||
|
Platform.runLater(() -> stage.setY(Double.valueOf(params.getOrDefault("y", "0.0"))));
|
||
|
AnalogClockController.setTargetFramerate(Double.valueOf(params.getOrDefault("fps", "60.0")));
|
||
|
}
|
||
|
|
||
|
}
|
||
高速化(CPU負荷軽減)のためアニメーションのフレームレートを規定(60fps)からコマンドライン引数で任意に指定可能とした。