我想在運行時修改Timeline,例如響應鼠標點擊我想更改動畫的目標值。通過在Timeline
調用pause()
,清除KeyFrames
ObservableList
,添加新KeyFrame
並呼籲Timeline
play()
在動畫執行時向時間軸中添加一個新的KeyFrame
- 暫停動畫:我曾嘗試幾種方法來做到這一點,包括(在鼠標單擊處理程序)。
- 使用Cue-name創建一個新的KeyFrame,將新幀添加到Observable列表並在
Timeline
上調用jumpTo(cueName)
。
一些示例代碼:
String cueName = String.valueOf(System.currentTimeMillis());
KeyValue kv = new KeyValue(myObject.rotateProperty(), -90 + 180.0 * Math.random(), new CustomInterpolator());
KeyFrame kf = new KeyFrame(Duration.seconds(10), cueName, kv);
startupTimeline.getKeyFrames().add(kf);
startupTimeline.jumpTo(cueName);
startupTimeline.play();
這些都不似乎工作,動畫只是停止。
我是否應該能夠修改現有時間軸的KeyFrame列表,或者如果我想在執行動畫時更改動畫,是否需要創建新的時間軸?
好的建議,James_D。我不知道這樣的階級是存在的。實際上,我試圖'彎曲''時間軸',使得由我的自定義插值器計算的位置與傳遞給它的小數值無關。嘗試做某件事情並不是件好事,AnimationTimer可能更適合。請把你的評論作爲答案,我會標記爲正確的。 – Kerry