فهرست منبع

[libgdx] Don't use `DIP_MIX` across tracks.

`DIP_MIX` finds the next entry which does NOT key the timeline property and mixes out the "dip fix" (which is where a timeline is fully applied because a subsequent timeline keys the same property). This handles the case of A->B->C->D where A, B, and C key the same property but D doesn't. A uses the dip fix, then when D mixes in, `DIP_MIX` causes A to mix out, affecting B and C. If D is in another track, it is applied concurrently with A, B, and C so should not cause A to mix out.
NathanSweet 8 سال پیش
والد
کامیت
61e54a5771
1فایلهای تغییر یافته به همراه1 افزوده شده و 5 حذف شده
  1. 1 5
      spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java

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

@@ -610,13 +610,9 @@ public class AnimationState {
 		propertyIDs.clear();
 		Array<TrackEntry> mixingTo = this.mixingTo;
 
-		TrackEntry lastEntry = null;
 		for (int i = 0, n = tracks.size; i < n; i++) {
 			TrackEntry entry = tracks.get(i);
-			if (entry != null) {
-				entry.setTimelineData(lastEntry, mixingTo, propertyIDs);
-				lastEntry = entry;
-			}
+			if (entry != null) entry.setTimelineData(null, mixingTo, propertyIDs);
 		}
 	}