[csharp] Allow events queued within callbacks.

This commit is contained in:
John 2017-02-18 15:28:02 +08:00 committed by GitHub
parent 0199570a27
commit cee79b7beb

View File

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