diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java index f9693d8fe..8098e6e75 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java @@ -185,11 +185,9 @@ public class AnimationStateTest { expect(0, "event 14", 0.5f, 0.5f), // expect(0, "event 30", 1, 1), // expect(0, "complete", 1, 1), // - - expect(1, "start", 0.1f, 1.1f), // - expect(0, "interrupt", 1.1f, 1.1f), // + expect(1, "start", 0.1f, 1.1f), // expect(1, "event 0", 0.1f, 1.1f), // expect(0, "end", 1.1f, 1.2f), // @@ -198,11 +196,9 @@ public class AnimationStateTest { expect(1, "event 14", 0.5f, 1.5f), // expect(1, "event 30", 1, 2), // expect(1, "complete", 1, 2), // - - expect(0, "start", 0.1f, 2.1f), // - expect(1, "interrupt", 1.1f, 2.1f), // + expect(0, "start", 0.1f, 2.1f), // expect(0, "event 0", 0.1f, 2.1f), // expect(1, "end", 1.1f, 2.2f), // @@ -223,11 +219,9 @@ public class AnimationStateTest { expect(0, "start", 0, 0), // expect(0, "event 0", 0, 0), // expect(0, "event 14", 0.5f, 0.5f), // - - expect(1, "start", 0.1f, 0.6f), // - expect(0, "interrupt", 0.6f, 0.6f), // + expect(1, "start", 0.1f, 0.6f), // expect(1, "event 0", 0.1f, 0.6f), // expect(0, "end", 0.6f, 0.7f), // @@ -247,10 +241,10 @@ public class AnimationStateTest { expect(0, "start", 0, 0), // expect(0, "event 0", 0, 0), // expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "interrupt", 1, 1), // expect(1, "start", 0.1f, 1), // - expect(0, "interrupt", 1, 1), // expect(0, "complete", 1, 1), // expect(1, "event 0", 0.1f, 1), // @@ -272,11 +266,9 @@ public class AnimationStateTest { setup("animation 0 events do not fire during mix", // 8 expect(0, "start", 0, 0), // expect(0, "event 0", 0, 0), // - - expect(1, "start", 0.1f, 0.5f), // - expect(0, "interrupt", 0.5f, 0.5f), // + expect(1, "start", 0.1f, 0.5f), // expect(1, "event 0", 0.1f, 0.5f), // expect(1, "event 14", 0.5f, 0.9f), // @@ -297,10 +289,10 @@ public class AnimationStateTest { setup("event threshold, some animation 0 events fire during mix", // 9 expect(0, "start", 0, 0), // expect(0, "event 0", 0, 0), // + expect(0, "interrupt", 0.5f, 0.5f), // expect(1, "start", 0.1f, 0.5f), // - expect(0, "interrupt", 0.5f, 0.5f), // expect(0, "event 14", 0.5f, 0.5f), // expect(1, "event 0", 0.1f, 0.5f), // @@ -324,11 +316,9 @@ public class AnimationStateTest { expect(0, "start", 0, 0), // expect(0, "event 0", 0, 0), // expect(0, "event 14", 0.5f, 0.5f), // - - expect(1, "start", 0.1f, 0.9f), // - expect(0, "interrupt", 0.9f, 0.9f), // + expect(1, "start", 0.1f, 0.9f), // expect(1, "event 0", 0.1f, 0.9f), // expect(0, "event 30", 1, 1), // @@ -378,11 +368,9 @@ public class AnimationStateTest { expect(0, "event 14", 0.5f, 0.5f), // expect(0, "event 30", 1, 1), // expect(0, "complete", 1, 1), // - - expect(1, "start", 0.1f, 2.1f), // - expect(0, "interrupt", 2.1f, 2.1f), // + expect(1, "start", 0.1f, 2.1f), // expect(1, "event 0", 0.1f, 2.1f), // expect(0, "end", 2.1f, 2.2f), // @@ -409,11 +397,9 @@ public class AnimationStateTest { expect(0, "event 30", 2, 2), // expect(0, "complete", 2, 2), // expect(0, "event 0", 2, 2), // - - expect(1, "start", 0.1f, 2.1f), // - expect(0, "interrupt", 2.1f, 2.1f), // + expect(1, "start", 0.1f, 2.1f), // expect(1, "event 0", 0.1f, 2.1f), // expect(0, "end", 2.1f, 2.2f), // @@ -501,11 +487,9 @@ public class AnimationStateTest { expect(0, "start", 0, 0), // expect(0, "event 14", 0.3f, 0.3f), // expect(0, "complete", 0.6f, 0.6f), // - - expect(1, "start", 0.1f, 0.8f), // - expect(0, "interrupt", 0.8f, 0.8f), // + expect(1, "start", 0.1f, 0.8f), // expect(1, "event 0", 0.1f, 0.8f), // expect(0, "event 14", 0.9f, 0.9f), // @@ -536,11 +520,10 @@ public class AnimationStateTest { expect(0, "event 30", 1, 1), // expect(0, "complete", 1, 1), // expect(0, "event 0", 1, 1), // + expect(0, "interrupt", 1, 1), // expect(1, "start", 0, 1), // - expect(0, "interrupt", 1, 1), // - expect(1, "event 0", 0.1f, 1.1f), // expect(1, "event 14", 0.5f, 1.5f), // @@ -571,10 +554,9 @@ public class AnimationStateTest { // First 2 setAnimation calls are done. - expect(0, "start", 0, 0.8f), // - expect(1, "interrupt", 0.8f, 0.8f), // + expect(0, "start", 0, 0.8f), // expect(0, "interrupt", 0, 0.8f), // expect(0, "end", 0, 0.8f), // expect(0, "dispose", 0, 0.8f), // @@ -655,12 +637,19 @@ public class AnimationStateTest { } }); - setup("setEmptyAnimation", // 24 + setup("setEmptyAnimation", // 25 expect(0, "start", 0, 0), // expect(0, "event 0", 0, 0), // expect(0, "event 14", 0.5f, 0.5f), // - expect(0, "end", 0.7f, 0.8f), // - expect(0, "dispose", 0.7f, 0.8f) // + expect(0, "interrupt", 0.7f, 0.7f), // + + expect(-1, "start", 0, 0.7f), // + expect(-1, "complete", 0.1f, 0.8f), // + expect(-1, "end", 0.1f, 0.9f), // + expect(-1, "dispose", 0.1f, 0.9f), // + + expect(0, "end", 0.8f, 0.9f), // + expect(0, "dispose", 0.8f, 0.9f) // ); state.addAnimation(0, "events1", false, 0); run(0.1f, 10, new TestListener() { 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 f0e0e85bc..076e7b146 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -290,8 +290,6 @@ public class AnimationState { TrackEntry current = expandToIndex(index); tracks.set(index, entry); - queue.start(entry); - if (current != null) { TrackEntry mixingFrom = current.mixingFrom; current.mixingFrom = null; @@ -308,6 +306,8 @@ public class AnimationState { if (mixingFrom != null) queue.end(mixingFrom); } + queue.start(entry); + animationsChanged = true; } @@ -481,7 +481,6 @@ public class AnimationState { entry.timeScale = 1; entry.alpha = 1; - entry.mixTime = 0; entry.mixDuration = last == null ? 0 : data.getMix(last.animation, animation); return entry;