Эх сурвалжийг харах

[as3] Ported 0 timeScale fix, see #1194.

badlogic 7 жил өмнө
parent
commit
ed7b4eaaea

BIN
spine-as3/spine-as3-example/lib/spine-as3.swc


+ 8 - 1
spine-as3/spine-as3/src/spine/animation/AnimationState.as

@@ -135,7 +135,7 @@ package spine.animation {
 			from.trackLast = from.nextTrackLast;
 
 			// Require mixTime > 0 to ensure the mixing from entry was applied at least once.
-			if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
+			if (to.mixTime > 0 && to.mixTime >= to.mixDuration) {
 				// Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame).
 				if (from.totalAlpha == 0 || to.mixDuration == 0) {
 					to.mixingFrom = from.mixingFrom;
@@ -145,6 +145,13 @@ package spine.animation {
 				}
 				return finished;
 			}
+			
+			// If to has 0 timeScale and is not the first entry, remove the mix and apply it one more time to return to the setup pose.
+			if (to.timeScale == 0 && to.mixingTo != null) {
+				to.timeScale = 1;
+				to.mixTime = 0;
+				to.mixDuration = 0;
+			}
 				
 			from.trackTime += delta * from.timeScale;
 			to.mixTime += delta * to.timeScale;

BIN
spine-starling/spine-starling-example/lib/spine-as3.swc


BIN
spine-starling/spine-starling/lib/spine-as3.swc