Pārlūkot izejas kodu

[csharp] Allow events queued within callbacks.

John 8 gadi atpakaļ
vecāks
revīzija
cee79b7beb
1 mainītis faili ar 4 papildinājumiem un 4 dzēšanām
  1. 4 4
      spine-csharp/src/AnimationState.cs

+ 4 - 4
spine-csharp/src/AnimationState.cs

@@ -840,7 +840,7 @@ namespace Spine {
 	}
 
 	class EventQueue {
-		private readonly ExposedList<EventQueueEntry> eventQueueEntries = new ExposedList<EventQueueEntry>();
+		private readonly List<EventQueueEntry> eventQueueEntries = new List<EventQueueEntry>();
 		public bool drainDisabled;
 
 		private readonly AnimationState state;
@@ -900,11 +900,11 @@ namespace Spine {
 			drainDisabled = true;
 
 			var entries = this.eventQueueEntries;
-			var entriesItems = entries.Items;
 			AnimationState state = this.state;
 
-			for (int i = 0, n = entries.Count; i < n; i++) {
-				var queueEntry = entriesItems[i];
+			// Don't cache entries.Count so callbacks can queue their own events (eg, call SetAnimation in AnimationState_Complete).
+			for (int i = 0; i < entries.Count; i++) {
+				var queueEntry = entries[i];
 				TrackEntry trackEntry = queueEntry.entry;
 
 				switch (queueEntry.type) {