[ts] Closes #714, don't require all callbacks in an animationstate listener to be set

This commit is contained in:
badlogic 2016-10-03 15:21:13 +02:00
parent 25be5370b2
commit 726543960b
11 changed files with 91 additions and 66 deletions

View File

@ -1117,17 +1117,19 @@ var spine;
}
for (var ii = 0, nn = events.length; ii < nn; ii++) {
var event_1 = events[ii];
if (current.listener != null)
if (current.listener != null && current.listener.event != null)
current.listener.event(i, event_1);
for (var iii = 0; iii < listenerCount; iii++)
this.listeners[iii].event(i, event_1);
if (this.listeners[iii].event)
this.listeners[iii].event(i, event_1);
}
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
var count = spine.MathUtils.toInt(time / endTime);
if (current.listener != null)
if (current.listener != null && current.listener.complete)
current.listener.complete(i, count);
for (var ii = 0, nn = this.listeners.length; ii < nn; ii++)
this.listeners[ii].complete(i, count);
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
}
@ -1143,10 +1145,11 @@ var spine;
var current = this.tracks[trackIndex];
if (current == null)
return;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(trackIndex);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(trackIndex);
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
};
@ -1168,10 +1171,11 @@ var spine;
if (current != null) {
var previous = current.previous;
current.previous = null;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(index);
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
entry.mixTime = 0;
@ -1184,10 +1188,11 @@ var spine;
}
}
this.tracks[index] = entry;
if (entry.listener != null)
if (entry.listener != null && entry.listener.start != null)
entry.listener.start(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].start(index);
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {
var animation = this.data.skeletonData.findAnimation(animationName);

File diff suppressed because one or more lines are too long

View File

@ -770,17 +770,19 @@ var spine;
}
for (var ii = 0, nn = events.length; ii < nn; ii++) {
var event_1 = events[ii];
if (current.listener != null)
if (current.listener != null && current.listener.event != null)
current.listener.event(i, event_1);
for (var iii = 0; iii < listenerCount; iii++)
this.listeners[iii].event(i, event_1);
if (this.listeners[iii].event)
this.listeners[iii].event(i, event_1);
}
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
var count = spine.MathUtils.toInt(time / endTime);
if (current.listener != null)
if (current.listener != null && current.listener.complete)
current.listener.complete(i, count);
for (var ii = 0, nn = this.listeners.length; ii < nn; ii++)
this.listeners[ii].complete(i, count);
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
}
@ -796,10 +798,11 @@ var spine;
var current = this.tracks[trackIndex];
if (current == null)
return;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(trackIndex);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(trackIndex);
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
};
@ -821,10 +824,11 @@ var spine;
if (current != null) {
var previous = current.previous;
current.previous = null;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(index);
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
entry.mixTime = 0;
@ -837,10 +841,11 @@ var spine;
}
}
this.tracks[index] = entry;
if (entry.listener != null)
if (entry.listener != null && entry.listener.start != null)
entry.listener.start(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].start(index);
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {
var animation = this.data.skeletonData.findAnimation(animationName);

File diff suppressed because one or more lines are too long

View File

@ -770,17 +770,19 @@ var spine;
}
for (var ii = 0, nn = events.length; ii < nn; ii++) {
var event_1 = events[ii];
if (current.listener != null)
if (current.listener != null && current.listener.event != null)
current.listener.event(i, event_1);
for (var iii = 0; iii < listenerCount; iii++)
this.listeners[iii].event(i, event_1);
if (this.listeners[iii].event)
this.listeners[iii].event(i, event_1);
}
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
var count = spine.MathUtils.toInt(time / endTime);
if (current.listener != null)
if (current.listener != null && current.listener.complete)
current.listener.complete(i, count);
for (var ii = 0, nn = this.listeners.length; ii < nn; ii++)
this.listeners[ii].complete(i, count);
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
}
@ -796,10 +798,11 @@ var spine;
var current = this.tracks[trackIndex];
if (current == null)
return;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(trackIndex);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(trackIndex);
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
};
@ -821,10 +824,11 @@ var spine;
if (current != null) {
var previous = current.previous;
current.previous = null;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(index);
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
entry.mixTime = 0;
@ -837,10 +841,11 @@ var spine;
}
}
this.tracks[index] = entry;
if (entry.listener != null)
if (entry.listener != null && entry.listener.start != null)
entry.listener.start(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].start(index);
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {
var animation = this.data.skeletonData.findAnimation(animationName);

File diff suppressed because one or more lines are too long

View File

@ -770,17 +770,19 @@ var spine;
}
for (var ii = 0, nn = events.length; ii < nn; ii++) {
var event_1 = events[ii];
if (current.listener != null)
if (current.listener != null && current.listener.event != null)
current.listener.event(i, event_1);
for (var iii = 0; iii < listenerCount; iii++)
this.listeners[iii].event(i, event_1);
if (this.listeners[iii].event)
this.listeners[iii].event(i, event_1);
}
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
var count = spine.MathUtils.toInt(time / endTime);
if (current.listener != null)
if (current.listener != null && current.listener.complete)
current.listener.complete(i, count);
for (var ii = 0, nn = this.listeners.length; ii < nn; ii++)
this.listeners[ii].complete(i, count);
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
}
@ -796,10 +798,11 @@ var spine;
var current = this.tracks[trackIndex];
if (current == null)
return;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(trackIndex);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(trackIndex);
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
};
@ -821,10 +824,11 @@ var spine;
if (current != null) {
var previous = current.previous;
current.previous = null;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(index);
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
entry.mixTime = 0;
@ -837,10 +841,11 @@ var spine;
}
}
this.tracks[index] = entry;
if (entry.listener != null)
if (entry.listener != null && entry.listener.start != null)
entry.listener.start(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].start(index);
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {
var animation = this.data.skeletonData.findAnimation(animationName);

File diff suppressed because one or more lines are too long

View File

@ -770,17 +770,19 @@ var spine;
}
for (var ii = 0, nn = events.length; ii < nn; ii++) {
var event_1 = events[ii];
if (current.listener != null)
if (current.listener != null && current.listener.event != null)
current.listener.event(i, event_1);
for (var iii = 0; iii < listenerCount; iii++)
this.listeners[iii].event(i, event_1);
if (this.listeners[iii].event)
this.listeners[iii].event(i, event_1);
}
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
var count = spine.MathUtils.toInt(time / endTime);
if (current.listener != null)
if (current.listener != null && current.listener.complete)
current.listener.complete(i, count);
for (var ii = 0, nn = this.listeners.length; ii < nn; ii++)
this.listeners[ii].complete(i, count);
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
}
@ -796,10 +798,11 @@ var spine;
var current = this.tracks[trackIndex];
if (current == null)
return;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(trackIndex);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(trackIndex);
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
};
@ -821,10 +824,11 @@ var spine;
if (current != null) {
var previous = current.previous;
current.previous = null;
if (current.listener != null)
if (current.listener != null && current.listener.end != null)
current.listener.end(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(index);
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
entry.mixTime = 0;
@ -837,10 +841,11 @@ var spine;
}
}
this.tracks[index] = entry;
if (entry.listener != null)
if (entry.listener != null && entry.listener.start != null)
entry.listener.start(index);
for (var i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].start(index);
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {
var animation = this.data.skeletonData.findAnimation(animationName);

File diff suppressed because one or more lines are too long

View File

@ -108,17 +108,17 @@ module spine {
for (let ii = 0, nn = events.length; ii < nn; ii++) {
let event = events[ii];
if (current.listener != null) current.listener.event(i, event);
if (current.listener != null && current.listener.event != null) current.listener.event(i, event);
for (let iii = 0; iii < listenerCount; iii++)
this.listeners[iii].event(i, event);
if (this.listeners[iii].event) this.listeners[iii].event(i, event);
}
// Check if completed the animation or a loop iteration.
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
let count = MathUtils.toInt(time / endTime);
if (current.listener != null) current.listener.complete(i, count);
if (current.listener != null && current.listener.complete) current.listener.complete(i, count);
for (let ii = 0, nn = this.listeners.length; ii < nn; ii++)
this.listeners[ii].complete(i, count);
if (this.listeners[ii].complete) this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
@ -136,9 +136,9 @@ module spine {
let current = this.tracks[trackIndex];
if (current == null) return;
if (current.listener != null) current.listener.end(trackIndex);
for (let i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(trackIndex);
if (current.listener != null && current.listener.end != null) current.listener.end(trackIndex);
for (let i = 0, n = this.listeners.length; i < n; i++)
if (this.listeners[i].end) this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
@ -165,9 +165,9 @@ module spine {
let previous = current.previous;
current.previous = null;
if (current.listener != null) current.listener.end(index);
if (current.listener != null && current.listener.end != null) current.listener.end(index);
for (let i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].end(index);
if (this.listeners[i].end) this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
@ -183,9 +183,9 @@ module spine {
this.tracks[index] = entry;
if (entry.listener != null) entry.listener.start(index);
if (entry.listener != null && entry.listener.start != null) entry.listener.start(index);
for (let i = 0, n = this.listeners.length; i < n; i++)
this.listeners[i].start(index);
if (this.listeners[i].start) this.listeners[i].start(index);
}
/** @see #setAnimation(int, Animation, boolean) */