diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index b87a62107..0db7ac90c 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -139,7 +139,9 @@ public class AnimationState { if (from == null) return true; boolean finished = updateMixingFrom(from, delta, animationCount + 1); - if (entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + + // Require mixTime > 0 to ensure the mixing from entry was applied at least once. + if (entry.mixTime > 0 && (entry.mixTime >= entry.mixDuration || entry.timeScale == 0)) { if (animationCount > 6 && from.mixingFrom == null) { // Limit the mixing from linked list. entry.mixingFrom = null; queue.end(from); @@ -856,6 +858,8 @@ public class AnimationState { /** Multiplier for the delta time when the animation state is updated, causing time for this animation to pass slower or * faster. Defaults to 1. *

+ * If timeScale is 0, any {@link #getMixDuration()} will be ignored. + *

* See AnimationState {@link AnimationState#getTimeScale()} for affecting all animations. */ public float getTimeScale () { return timeScale;