Revert "修复 TransitionPane 动画被打断时节点状态异常的问题" (#4986)
Reverts HMCL-dev/HMCL#4957
This commit is contained in:
@@ -31,7 +31,6 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
public class TransitionPane extends StackPane {
|
public class TransitionPane extends StackPane {
|
||||||
|
|
||||||
private Node currentNode;
|
private Node currentNode;
|
||||||
private Animation oldAnimation;
|
|
||||||
|
|
||||||
public TransitionPane() {
|
public TransitionPane() {
|
||||||
FXUtils.setOverflowHidden(this);
|
FXUtils.setOverflowHidden(this);
|
||||||
@@ -51,11 +50,6 @@ public class TransitionPane extends StackPane {
|
|||||||
|
|
||||||
public void setContent(Node newView, AnimationProducer transition,
|
public void setContent(Node newView, AnimationProducer transition,
|
||||||
Duration duration, Interpolator interpolator) {
|
Duration duration, Interpolator interpolator) {
|
||||||
if (oldAnimation != null) {
|
|
||||||
oldAnimation.stop();
|
|
||||||
oldAnimation = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Node previousNode = currentNode != newView && getWidth() > 0 && getHeight() > 0 ? currentNode : null;
|
Node previousNode = currentNode != newView && getWidth() > 0 && getHeight() > 0 ? currentNode : null;
|
||||||
currentNode = newView;
|
currentNode = newView;
|
||||||
|
|
||||||
@@ -86,19 +80,15 @@ public class TransitionPane extends StackPane {
|
|||||||
previousNode,
|
previousNode,
|
||||||
newView,
|
newView,
|
||||||
duration, interpolator);
|
duration, interpolator);
|
||||||
newAnimation.statusProperty().addListener((observable, oldValue, newValue) -> {
|
newAnimation.setOnFinished(e -> {
|
||||||
if (oldValue == Animation.Status.RUNNING && newValue != Animation.Status.RUNNING) {
|
setMouseTransparent(false);
|
||||||
setMouseTransparent(false);
|
getChildren().remove(previousNode);
|
||||||
getChildren().remove(previousNode);
|
|
||||||
|
|
||||||
if (cacheHint != null) {
|
if (cacheHint != null) {
|
||||||
newView.setCache(false);
|
newView.setCache(false);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
FXUtils.playAnimation(this, "transition_pane", newAnimation);
|
||||||
oldAnimation = newAnimation;
|
|
||||||
newAnimation.play();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user