From f567c18cfa59ce764247e4f83611a4059261c0d5 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Fri, 18 Jun 2021 22:23:25 -0400 Subject: [PATCH] [libgdx] SkeletonViewer, don't use mixing from an empty animation to play the first animation after loading the skeleton. --- .../src/com/esotericsoftware/spine/SkeletonViewer.java | 9 +++++---- .../src/com/esotericsoftware/spine/SkeletonViewerUI.java | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java index 7799ebf25..64efa9c11 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java @@ -108,6 +108,7 @@ public class SkeletonViewer extends ApplicationAdapter { ui.loadPrefs(); ui.prefsLoaded = true; + setAnimation(true); if (false) { ui.animationList.clearListeners(); @@ -182,16 +183,16 @@ public class SkeletonViewer extends ApplicationAdapter { // Configure skeleton from UI. if (ui.skinList.getSelected() != null) skeleton.setSkin(ui.skinList.getSelected()); - setAnimation(); + setAnimation(true); return true; } - void setAnimation () { + void setAnimation (boolean first) { + if (!ui.prefsLoaded) return; if (ui.animationList.getSelected() == null) return; int track = ui.trackButtons.getCheckedIndex(); - TrackEntry current = state.getCurrent(track); TrackEntry entry; - if (current == null) { + if (!first && state.getCurrent(track) == null) { state.setEmptyAnimation(track, 0); entry = state.addAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked(), 0); entry.setMixDuration(ui.mixSlider.getValue()); diff --git a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java index 50a87cc33..a97f0808f 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java @@ -483,7 +483,7 @@ class SkeletonViewerUI { if (name == null) viewer.state.setEmptyAnimation(trackButtons.getCheckedIndex(), mixSlider.getValue()); else - viewer.setAnimation(); + viewer.setAnimation(false); } } }); @@ -491,7 +491,7 @@ class SkeletonViewerUI { ChangeListener setAnimation = new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { - viewer.setAnimation(); + viewer.setAnimation(false); } }; loopCheckbox.addListener(setAnimation);