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

Ensure the track entry has the correct time when start and end are fired.

#154
NathanSweet 9 жил өмнө
parent
commit
c7bb3f3af8

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

@@ -68,8 +68,11 @@ public class AnimationState {
 			if (next != null) {
 				float nextTime = current.lastTime - next.delay;
 				if (nextTime >= 0) {
-					next.time = nextTime;
+					float nextDelta = delta * next.timeScale;
+					next.time = nextTime + nextDelta; // For start event to see correct time.
+					current.time += delta * current.timeScale; // For end event to see correct time.
 					setCurrent(i, next);
+					next.time -= nextDelta; // Prevent increasing time twice, below.
 					current = next;
 				}
 			} else if (!current.loop && current.lastTime >= current.endTime) {