Fixed clearing tracks in event callbacks.

closes #134
This commit is contained in:
NathanSweet 2013-10-10 10:15:53 +02:00
parent fc4895ad95
commit 97f9b7e4d2
3 changed files with 4 additions and 2 deletions

View File

@ -107,6 +107,7 @@ void spAnimationState_update (spAnimationState* self, float delta) {
int count = (int)(time / endTime);
if (current->listener) current->listener(self, i, ANIMATION_COMPLETE, 0, count);
if (self->listener) self->listener(self, i, ANIMATION_COMPLETE, 0, count);
if (i >= self->trackCount || !self->tracks[i]) continue;
}
if (current->next) {
@ -160,6 +161,7 @@ void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) {
if (self->listener) self->listener(self, i, ANIMATION_EVENT, event, 0);
}
if (i >= self->trackCount || !self->tracks[i]) continue;
current->lastTime = current->time;
}
}

View File

@ -57,7 +57,7 @@ namespace Spine {
public void Update (float delta) {
delta *= timeScale;
for (int i = 0, n = tracks.Count; i < n; i++) {
for (int i = 0; i < tracks.Count; i++) {
TrackEntry current = tracks[i];
if (current == null) continue;

View File

@ -52,7 +52,7 @@ public class AnimationState {
public void update (float delta) {
delta *= timeScale;
for (int i = 0, n = tracks.size; i < n; i++) {
for (int i = 0; i < tracks.size; i++) {
TrackEntry current = tracks.get(i);
if (current == null) continue;