浏览代码

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

badlogic 9 年之前
父节点
当前提交
726543960b

+ 15 - 10
spine-ts/build/spine-all.js

@@ -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);

文件差异内容过多而无法显示
+ 0 - 0
spine-ts/build/spine-all.js.map


+ 15 - 10
spine-ts/build/spine-core.js

@@ -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);

文件差异内容过多而无法显示
+ 0 - 0
spine-ts/build/spine-core.js.map


+ 15 - 10
spine-ts/build/spine-threejs.js

@@ -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);

文件差异内容过多而无法显示
+ 0 - 0
spine-ts/build/spine-threejs.js.map


+ 15 - 10
spine-ts/build/spine-webgl.js

@@ -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);

文件差异内容过多而无法显示
+ 0 - 0
spine-ts/build/spine-webgl.js.map


+ 15 - 10
spine-ts/build/spine-widget.js

@@ -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);

文件差异内容过多而无法显示
+ 0 - 0
spine-ts/build/spine-widget.js.map


+ 11 - 11
spine-ts/core/src/AnimationState.ts

@@ -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) */

部分文件因为文件数量过多而无法显示