Просмотр исходного кода

Fixes completion event firing for 0 duration animations. See #1112.

badlogic 7 лет назад
Родитель
Сommit
99ca67ca77

+ 6 - 4
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java

@@ -386,10 +386,12 @@ public class AnimationState {
 		}
 
 		// Queue complete if completed a loop iteration or the animation.
-		if (entry.loop ? (trackLastWrapped > entry.trackTime % duration)
-			: (animationTime >= animationEnd && entry.animationLast < animationEnd)) {
-			queue.complete(entry);
-		}
+		boolean complete;
+		if (entry.loop)
+			complete = duration == 0 || trackLastWrapped > entry.trackTime % duration;
+		else
+			complete = animationTime >= animationEnd && entry.animationLast < animationEnd;
+		if (complete) queue.complete(entry);
 
 		// Queue events after complete.
 		for (; i < n; i++) {