我的PathTransition动画了几个标签,并有一个setOnFinished - 事件。当使用光标输入标签时,此标签会动画并停止前一个标签的动画(如果有)。
Label l1 = new Label("Hello");
Label l2 = new Label("Hello");
Path path = new Path();
path.getElements().add(new MoveTo(100,100);
path.getElements().add(new LineTo(200,200));
PathTransition pathTransition = new PathTransition();
pathTransition.setDuration(Duration.millis(1000));
pathTransition.setPath(path);
pathTransition.setNode(l1);
pathTransition.setOnFinished(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// do something
}
});
pathTransition.play()
// if i enter l2 i want stop the l1 animation
pathTransition.stop()
// animate the l2
// ...
我的问题是pathTransition.stop()会停止动画,但onFinished-event不会触发。在pathTransition停止后是否有任何触发事件的解决方案?
我希望我的问题是可以理解的。
谢谢
答案 0 :(得分:0)
您可以收听对动画statusProperty
:
pathTransition.statusProperty().addListener(new ChangeListener<Status>() {
@Override
public void changed(ObservableValue<? extends Status> observableValue,
Status oldValue, Status newValue) {
if(newValue==Status.STOPPED){
//do something
}
}
});