[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,16 +1117,18 @@ 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++)
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++)
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
@ -1143,9 +1145,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
@ -1168,9 +1171,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
@ -1184,9 +1188,10 @@ 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++)
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {

File diff suppressed because one or more lines are too long

View File

@ -770,16 +770,18 @@ 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++)
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++)
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
@ -796,9 +798,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
@ -821,9 +824,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
@ -837,9 +841,10 @@ 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++)
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {

File diff suppressed because one or more lines are too long

View File

@ -770,16 +770,18 @@ 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++)
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++)
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
@ -796,9 +798,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
@ -821,9 +824,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
@ -837,9 +841,10 @@ 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++)
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {

File diff suppressed because one or more lines are too long

View File

@ -770,16 +770,18 @@ 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++)
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++)
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
@ -796,9 +798,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
@ -821,9 +824,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
@ -837,9 +841,10 @@ 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++)
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {

File diff suppressed because one or more lines are too long

View File

@ -770,16 +770,18 @@ 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++)
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++)
if (this.listeners[ii].complete)
this.listeners[ii].complete(i, count);
}
current.lastTime = current.time;
@ -796,9 +798,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(trackIndex);
this.tracks[trackIndex] = null;
this.freeAll(current);
@ -821,9 +824,10 @@ 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++)
if (this.listeners[i].end)
this.listeners[i].end(index);
entry.mixDuration = this.data.getMix(current.animation, entry.animation);
if (entry.mixDuration > 0) {
@ -837,9 +841,10 @@ 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++)
if (this.listeners[i].start)
this.listeners[i].start(index);
};
AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {

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);
if (current.listener != null && current.listener.end != null) current.listener.end(trackIndex);
for (let 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;
@ -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) */