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 3d309ce4f..4db2abfa1 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -280,6 +280,7 @@ public class AnimationState { from.totalAlpha = 0; for (int i = 0; i < timelineCount; i++) { Timeline timeline = (Timeline)timelines[i]; + MixDirection direction = MixDirection.out; MixBlend timelineBlend; float alpha; switch (timelineMode[i]) { @@ -307,8 +308,16 @@ public class AnimationState { if (timeline instanceof RotateTimeline) { applyRotateTimeline(timeline, skeleton, animationTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); - } else - timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, MixDirection.out); + } else { + if (timelineBlend == MixBlend.setup) { + if (timeline instanceof AttachmentTimeline) { + if (attachments) direction = MixDirection.in; + } else if (timeline instanceof DrawOrderTimeline) { + if (drawOrder) direction = MixDirection.in; + } + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, direction); + } } }