浏览代码

Merge branch '3.7-beta' into 3.7-beta-cpp

badlogic 6 年之前
父节点
当前提交
b1f9d062a5

+ 6 - 1
CHANGELOG.md

@@ -5,6 +5,7 @@
   * The completion event will fire for looped 0 duration animations every frame.
   * The completion event will fire for looped 0 duration animations every frame.
   * `MixPose` is now called `MixBlend`
   * `MixPose` is now called `MixBlend`
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
+  * Mix time is no longer affected by `TrackEntry#timeScale`. See https://github.com/EsotericSoftware/spine-runtimes/issues/1194
 * **Additions**
 * **Additions**
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
   * Support for stretchy IK
   * Support for stretchy IK
@@ -31,7 +32,7 @@
   * The completion event will fire for looped 0 duration animations every frame.
   * The completion event will fire for looped 0 duration animations every frame.
   * The spine-cocos2dx and spine-ue4 runtimes are now based on spine-cpp. See below for changes.
   * The spine-cocos2dx and spine-ue4 runtimes are now based on spine-cpp. See below for changes.
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
-
+  * Mix time is no longer affected by `TrackEntry#timeScale`. See https://github.com/EsotericSoftware/spine-runtimes/issues/1194
 * **Additions**
 * **Additions**
   * Added support for local and relative transform constraint calculation, including additional fields in `spTransformConstraintData`.
   * Added support for local and relative transform constraint calculation, including additional fields in `spTransformConstraintData`.
   * `Animation#apply` and `Timeline#apply`` now take enums `MixPose` and `MixDirection` instead of booleans
   * `Animation#apply` and `Timeline#apply`` now take enums `MixPose` and `MixDirection` instead of booleans
@@ -99,6 +100,7 @@
 * **Breaking changes**
 * **Breaking changes**
   * The completion event will fire for looped 0 duration animations every frame.
   * The completion event will fire for looped 0 duration animations every frame.
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
+  * Mix time is no longer affected by `TrackEntry#timeScale`. See https://github.com/EsotericSoftware/spine-runtimes/issues/1194
 * **Additions**
 * **Additions**
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#MixBlend = MixBlend.add` on each track. To specify the blend percentage, set `TrackEntry#Alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#MixBlend = MixBlend.add` on each track. To specify the blend percentage, set `TrackEntry#Alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
   * Support for stretchy IK
   * Support for stretchy IK
@@ -139,6 +141,7 @@
   * The completion event will fire for looped 0 duration animations every frame.
   * The completion event will fire for looped 0 duration animations every frame.
   * `MixPose` is now called `MixBlend`.
   * `MixPose` is now called `MixBlend`.
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
+  * Mix time is no longer affected by `TrackEntry#timeScale`. See https://github.com/EsotericSoftware/spine-runtimes/issues/1194
 * **Additions**
 * **Additions**
   * Added `EventData#audioPath` field. This field contains the file name of the audio file used for the event.
   * Added `EventData#audioPath` field. This field contains the file name of the audio file used for the event.
   * Added convenience method to add all attachments from one skin to another, see https://github.com/EsotericSoftware/spine-runtimes/commit/a0b7bb6c445efdfac12b0cdee2057afa3eff3ead
   * Added convenience method to add all attachments from one skin to another, see https://github.com/EsotericSoftware/spine-runtimes/commit/a0b7bb6c445efdfac12b0cdee2057afa3eff3ead
@@ -159,6 +162,7 @@
 * **Breaking changes**
 * **Breaking changes**
   * The completion event will fire for looped 0 duration animations every frame.
   * The completion event will fire for looped 0 duration animations every frame.
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
+  * Mix time is no longer affected by `TrackEntry#timeScale`. See https://github.com/EsotericSoftware/spine-runtimes/issues/1194
 * **Additions**
 * **Additions**
   * Added `JitterEffect` and `SwirlEffect` and support for vertex effects in Corona and Love
   * Added `JitterEffect` and `SwirlEffect` and support for vertex effects in Corona and Love
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry:setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry.alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry:setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry.alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
@@ -176,6 +180,7 @@
 * **Breaking changes**
 * **Breaking changes**
   * The completion event will fire for looped 0 duration animations every frame.
   * The completion event will fire for looped 0 duration animations every frame.
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
   * Skeleton `flipX/flipY` has been replaced with `scaleY/scaleY`. This cleans up applying transforms and is more powerful. Allows scaling a whole skeleton which has bones that disallow scale inheritance
+  * Mix time is no longer affected by `TrackEntry#timeScale`. See https://github.com/EsotericSoftware/spine-runtimes/issues/1194
 * **Additions**
 * **Additions**
   * Added `AssetManager.loadTextureAtlas`. Instead of loading the `.atlas` and corresponding image files manually, you can simply specify the location of the `.atlas` file and AssetManager will load the atlas and all its images automatically. `AssetManager.get("atlasname.atlas")` will then return an instance of `spine.TextureAtlas`.
   * Added `AssetManager.loadTextureAtlas`. Instead of loading the `.atlas` and corresponding image files manually, you can simply specify the location of the `.atlas` file and AssetManager will load the atlas and all its images automatically. `AssetManager.get("atlasname.atlas")` will then return an instance of `spine.TextureAtlas`.
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion. See https://github.com/EsotericSoftware/spine-runtimes/blob/f045d221836fa56191ccda73dd42ae884d4731b8/spine-ts/webgl/tests/test-additive-animation-blending.html for an example.
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion. See https://github.com/EsotericSoftware/spine-runtimes/blob/f045d221836fa56191ccda73dd42ae884d4731b8/spine-ts/webgl/tests/test-additive-animation-blending.html for an example.

二进制
spine-as3/spine-as3-example/lib/spine-as3.swc


+ 3 - 10
spine-as3/spine-as3/src/spine/animation/AnimationState.as

@@ -90,11 +90,11 @@ package spine.animation {
 					var nextTime : Number = current.trackLast - next.delay;
 					var nextTime : Number = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						setCurrent(i, next, true);
 						setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -145,16 +145,9 @@ package spine.animation {
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			
-			// If to has 0 timeScale and is not the first entry, remove the mix and apply it one more time to return to the setup pose.
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 				
 				
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		}
 		}
 
 

+ 3 - 9
spine-c/spine-c/src/spine/AnimationState.c

@@ -280,11 +280,11 @@ void spAnimationState_update (spAnimationState* self, float delta) {
 			float nextTime = current->trackLast - next->delay;
 			float nextTime = current->trackLast - next->delay;
 			if (nextTime >= 0) {
 			if (nextTime >= 0) {
 				next->delay = 0;
 				next->delay = 0;
-				next->trackTime = nextTime + delta * next->timeScale;
+				next->trackTime = (nextTime / current->timeScale + delta) * next->timeScale;
 				current->trackTime += currentDelta;
 				current->trackTime += currentDelta;
 				_spAnimationState_setCurrent(self, i, next, 1);
 				_spAnimationState_setCurrent(self, i, next, 1);
 				while (next->mixingFrom) {
 				while (next->mixingFrom) {
-					next->mixTime += currentDelta;
+					next->mixTime += delta;
 					next = next->mixingFrom;
 					next = next->mixingFrom;
 				}
 				}
 				continue;
 				continue;
@@ -338,14 +338,8 @@ int /*boolean*/ _spAnimationState_updateMixingFrom (spAnimationState* self, spTr
 		return finished;
 		return finished;
 	}
 	}
 
 
-	if (to->timeScale == 0 && to->mixingTo) {
-		to->timeScale = 1;
-		to->mixTime = 0;
-		to->mixDuration = 0;
-	}
-
 	from->trackTime += delta * from->timeScale;
 	from->trackTime += delta * from->timeScale;
-	to->mixTime += delta * to->timeScale;
+	to->mixTime += delta;
 	return 0;
 	return 0;
 }
 }
 
 

+ 3 - 9
spine-cpp/spine-cpp/src/spine/AnimationState.cpp

@@ -334,11 +334,11 @@ void AnimationState::update(float delta) {
 			float nextTime = current._trackLast - next->_delay;
 			float nextTime = current._trackLast - next->_delay;
 			if (nextTime >= 0) {
 			if (nextTime >= 0) {
 				next->_delay = 0;
 				next->_delay = 0;
-				next->_trackTime = nextTime + (delta * next->_timeScale);
+				next->_trackTime = (nextTime / current._timeScale + delta) * next->_timeScale;
 				current._trackTime += currentDelta;
 				current._trackTime += currentDelta;
 				setCurrent(i, next, true);
 				setCurrent(i, next, true);
 				while (next->_mixingFrom != NULL) {
 				while (next->_mixingFrom != NULL) {
-					next->_mixTime += currentDelta;
+					next->_mixTime += delta;
 					next = next->_mixingFrom;
 					next = next->_mixingFrom;
 				}
 				}
 				continue;
 				continue;
@@ -728,14 +728,8 @@ bool AnimationState::updateMixingFrom(TrackEntry *to, float delta) {
 		return finished;
 		return finished;
 	}
 	}
 
 
-	if (to->_timeScale == 0 && to->_mixingTo) {
-		to->_timeScale = 1;
-		to->_mixTime = 0;
-		to->_mixDuration = 0;
-	}
-
 	from->_trackTime += delta * from->_timeScale;
 	from->_trackTime += delta * from->_timeScale;
-	to->_mixTime += delta * to->_timeScale;
+	to->_mixTime += delta;
 
 
 	return false;
 	return false;
 }
 }

+ 18 - 15
spine-csharp/src/AnimationState.cs

@@ -98,11 +98,11 @@ namespace Spine {
 					float nextTime = current.trackLast - next.delay;
 					float nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + (delta * next.timeScale);
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						SetCurrent(i, next, true);
 						SetCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -153,15 +153,8 @@ namespace Spine {
 				return finished;
 				return finished;
 			}
 			}
 
 
-			// If to has 0 timeScale and is not the first entry, remove the mix and apply it one more time to return to the setup pose.
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
-
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		}
 		}
 
 
@@ -514,8 +507,10 @@ namespace Spine {
 		/// for a track. If the track is empty, it is equivalent to calling <see cref="SetAnimation"/>.</summary>
 		/// for a track. If the track is empty, it is equivalent to calling <see cref="SetAnimation"/>.</summary>
 		/// <param name="delay">
 		/// <param name="delay">
 		/// delay Seconds to begin this animation after the start of the previous animation. If  &lt;= 0, uses the duration of the
 		/// delay Seconds to begin this animation after the start of the previous animation. If  &lt;= 0, uses the duration of the
-		/// previous track entry minus any mix duration plus the specified<code>delay</code>.If the previous entry is
-		/// looping, its next loop completion is used instead of the duration.
+		/// previous track entry minus any mix duration (from the <see cref="AnimationStateData"/>) plus the
+		/// specified<code>delay</code> (ie the mix ends at (<code>delay</code> = 0) or before (<code>delay</code> < 0) the previous
+		/// track entry duration). If the previous entry is looping, its next loop completion is used
+		/// instead of the duration.
 		/// </param>
 		/// </param>
 		/// <returns>A track entry to allow further customization of animation playback. References to the track entry must not be kept
 		/// <returns>A track entry to allow further customization of animation playback. References to the track entry must not be kept
 		/// after <see cref="AnimationState.Dispose"/></returns>
 		/// after <see cref="AnimationState.Dispose"/></returns>
@@ -782,7 +777,7 @@ namespace Spine {
 		///<summary>
 		///<summary>
 		/// Seconds to postpone playing the animation. When a track entry is the current track entry, delay postpones incrementing
 		/// Seconds to postpone playing the animation. When a track entry is the current track entry, delay postpones incrementing
 		/// the track time. When a track entry is queued, delay is the time from the start of the previous animation to when the
 		/// the track time. When a track entry is queued, delay is the time from the start of the previous animation to when the
-		/// track entry will become the current track entry.</summary>
+		/// track entry will become the current track entry. <see cref="TrackEntry.TimeScale"/> affects the delay.</summary>
 		public float Delay { get { return delay; } set { delay = value; } }
 		public float Delay { get { return delay; } set { delay = value; } }
 
 
 		/// <summary>
 		/// <summary>
@@ -842,8 +837,15 @@ namespace Spine {
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
-		/// Multiplier for the delta time when the animation state is updated, causing time for this animation to play slower or
+		/// Multiplier for the delta time when the animation state is updated, causing time for all animations and mixes to play slower or
 		/// faster. Defaults to 1.
 		/// faster. Defaults to 1.
+		///
+		/// <see cref="TrackEntry.MixTime"/> is not affected by track entry time scale, so <see cref="TrackEntry.MixDuration"/> may need to
+		// be adjusted to match the animation speed.
+		///
+		/// When using <see cref="AnimationState.AddAnimation(int, Animation, boolean, float)"> with a <code>delay</code> <= 0, note the
+		/// {<see cref="TrackEntry.Delay"/> is set using the mix duration from the <see cref="AnimationStateData"/>, assuming time scale to be 1. If
+		/// the time scale is not 1, the delay may need to be adjusted.
 		/// </summary>
 		/// </summary>
 		public float TimeScale { get { return timeScale; } set { timeScale = value; } }
 		public float TimeScale { get { return timeScale; } set { timeScale = value; } }
 
 
@@ -897,7 +899,8 @@ namespace Spine {
 		/// In that case, the mixDuration must be set before <see cref="AnimationState.Update(float)"/> is next called.
 		/// In that case, the mixDuration must be set before <see cref="AnimationState.Update(float)"/> is next called.
 		/// <para>
 		/// <para>
 		/// When using <seealso cref="AnimationState.AddAnimation(int, Animation, bool, float)"/> with a
 		/// When using <seealso cref="AnimationState.AddAnimation(int, Animation, bool, float)"/> with a
-		/// <code>delay</code> less than or equal to 0, note the <seealso cref="Delay"/> is set using the mix duration from the <see cref=" AnimationStateData"/>
+		/// <code>delay</code> less than or equal to 0, note the <seealso cref="Delay"/> is set using the mix duration from the <see cref=" AnimationStateData"/>,
+		/// not a mix duration set afterward.
 		/// </para>
 		/// </para>
 		///
 		///
 		/// </summary>
 		/// </summary>

+ 1 - 1
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java

@@ -94,7 +94,7 @@ public class Skin {
 	public void clear () {
 	public void clear () {
 		for (Key key : attachments.keys())
 		for (Key key : attachments.keys())
 			keyPool.free(key);
 			keyPool.free(key);
-		attachments.clear();
+		attachments.clear(1024);
 	}
 	}
 
 
 	/** The skin's name, which is unique within the skeleton. */
 	/** The skin's name, which is unique within the skeleton. */

+ 3 - 10
spine-lua/AnimationState.lua

@@ -249,11 +249,11 @@ function AnimationState:update (delta)
 					local nextTime = current.trackLast - _next.delay
 					local nextTime = current.trackLast - _next.delay
 					if nextTime >= 0 then
 					if nextTime >= 0 then
 						_next.delay = 0
 						_next.delay = 0
-						_next.trackTime = nextTime + delta * _next.timeScale
+						_next.trackTime = (nextTime / current.timeScale + delta) * _next.timeScale
 						current.trackTime = current.trackTime + currentDelta
 						current.trackTime = current.trackTime + currentDelta
 						self:setCurrent(i, _next, true)
 						self:setCurrent(i, _next, true)
 						while _next.mixingFrom do
 						while _next.mixingFrom do
-							_next.mixTime = _next.mixTime + currentDelta
+							_next.mixTime = _next.mixTime + delta
 							_next = _next.mixingFrom
 							_next = _next.mixingFrom
 						end
 						end
 						skip = true
 						skip = true
@@ -310,15 +310,8 @@ function AnimationState:updateMixingFrom (to, delta)
 		return finished
 		return finished
 	end
 	end
 
 
-	-- If to has 0 timeScale and is not the first entry, remove the mix and apply it one more time to return to the setup pose.
-	if to.timeScale == 0 and to.mixingTo then
-		to.timeScale = 1
-		to.mixTime = 0
-		to.mixDuration = 0
-	end
-
 	from.trackTime = from.trackTime + delta * from.timeScale
 	from.trackTime = from.trackTime + delta * from.timeScale
-	to.mixTime = to.mixTime + delta * to.timeScale
+	to.mixTime = to.mixTime + delta
 	return false;
 	return false;
 end
 end
 
 

二进制
spine-starling/spine-starling-example/lib/spine-as3.swc


二进制
spine-starling/spine-starling/lib/spine-as3.swc


+ 46 - 46
spine-ts/build/spine-all.d.ts

@@ -16,11 +16,11 @@ declare module spine {
 		setup = 0,
 		setup = 0,
 		first = 1,
 		first = 1,
 		replace = 2,
 		replace = 2,
-		add = 3
+		add = 3,
 	}
 	}
 	enum MixDirection {
 	enum MixDirection {
 		in = 0,
 		in = 0,
-		out = 1
+		out = 1,
 	}
 	}
 	enum TimelineType {
 	enum TimelineType {
 		rotate = 0,
 		rotate = 0,
@@ -37,7 +37,7 @@ declare module spine {
 		pathConstraintPosition = 11,
 		pathConstraintPosition = 11,
 		pathConstraintSpacing = 12,
 		pathConstraintSpacing = 12,
 		pathConstraintMix = 13,
 		pathConstraintMix = 13,
-		twoColor = 14
+		twoColor = 14,
 	}
 	}
 	abstract class CurveTimeline implements Timeline {
 	abstract class CurveTimeline implements Timeline {
 		static LINEAR: number;
 		static LINEAR: number;
@@ -341,7 +341,7 @@ declare module spine {
 		end = 2,
 		end = 2,
 		dispose = 3,
 		dispose = 3,
 		complete = 4,
 		complete = 4,
-		event = 5
+		event = 5,
 	}
 	}
 	interface AnimationStateListener2 {
 	interface AnimationStateListener2 {
 		start(entry: TrackEntry): void;
 		start(entry: TrackEntry): void;
@@ -380,8 +380,8 @@ declare module spine {
 		private toLoad;
 		private toLoad;
 		private loaded;
 		private loaded;
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
-		private static downloadText;
-		private static downloadBinary;
+		private static downloadText(url, success, error);
+		private static downloadBinary(url, success, error);
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
@@ -414,7 +414,7 @@ declare module spine {
 		Normal = 0,
 		Normal = 0,
 		Additive = 1,
 		Additive = 1,
 		Multiply = 2,
 		Multiply = 2,
-		Screen = 3
+		Screen = 3,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -483,7 +483,7 @@ declare module spine {
 		OnlyTranslation = 1,
 		OnlyTranslation = 1,
 		NoRotationOrReflection = 2,
 		NoRotationOrReflection = 2,
 		NoScale = 3,
 		NoScale = 3,
-		NoScaleOrReflection = 4
+		NoScaleOrReflection = 4,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -593,17 +593,17 @@ declare module spine {
 	}
 	}
 	enum PositionMode {
 	enum PositionMode {
 		Fixed = 0,
 		Fixed = 0,
-		Percent = 1
+		Percent = 1,
 	}
 	}
 	enum SpacingMode {
 	enum SpacingMode {
 		Length = 0,
 		Length = 0,
 		Fixed = 1,
 		Fixed = 1,
-		Percent = 2
+		Percent = 2,
 	}
 	}
 	enum RotateMode {
 	enum RotateMode {
 		Tangent = 0,
 		Tangent = 0,
 		Chain = 1,
 		Chain = 1,
-		ChainScale = 2
+		ChainScale = 2,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -614,12 +614,12 @@ declare module spine {
 		private rawAssets;
 		private rawAssets;
 		private errors;
 		private errors;
 		constructor(pathPrefix?: string);
 		constructor(pathPrefix?: string);
-		private queueAsset;
+		private queueAsset(clientId, textureLoader, path);
 		loadText(clientId: string, path: string): void;
 		loadText(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		get(clientId: string, path: string): any;
 		get(clientId: string, path: string): any;
-		private updateClientAssets;
+		private updateClientAssets(clientAssets);
 		isLoadingComplete(clientId: string): boolean;
 		isLoadingComplete(clientId: string): boolean;
 		dispose(): void;
 		dispose(): void;
 		hasErrors(): boolean;
 		hasErrors(): boolean;
@@ -823,12 +823,12 @@ declare module spine {
 		MipMapNearestNearest = 9984,
 		MipMapNearestNearest = 9984,
 		MipMapLinearNearest = 9985,
 		MipMapLinearNearest = 9985,
 		MipMapNearestLinear = 9986,
 		MipMapNearestLinear = 9986,
-		MipMapLinearLinear = 9987
+		MipMapLinearLinear = 9987,
 	}
 	}
 	enum TextureWrap {
 	enum TextureWrap {
 		MirroredRepeat = 33648,
 		MirroredRepeat = 33648,
 		ClampToEdge = 33071,
 		ClampToEdge = 33071,
-		Repeat = 10497
+		Repeat = 10497,
 	}
 	}
 	class TextureRegion {
 	class TextureRegion {
 		renderObject: any;
 		renderObject: any;
@@ -855,7 +855,7 @@ declare module spine {
 		pages: TextureAtlasPage[];
 		pages: TextureAtlasPage[];
 		regions: TextureAtlasRegion[];
 		regions: TextureAtlasRegion[];
 		constructor(atlasText: string, textureLoader: (path: string) => any);
 		constructor(atlasText: string, textureLoader: (path: string) => any);
-		private load;
+		private load(atlasText, textureLoader);
 		findRegion(name: string): TextureAtlasRegion;
 		findRegion(name: string): TextureAtlasRegion;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -931,9 +931,9 @@ declare module spine {
 		private polygonIndicesPool;
 		private polygonIndicesPool;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
-		private static isConcave;
-		private static positiveArea;
-		private static winding;
+		private static isConcave(index, vertexCount, vertices, indices);
+		private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y);
+		private static winding(p1x, p1y, p2x, p2y, p3x, p3y);
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1105,7 +1105,7 @@ declare module spine {
 		Mesh = 2,
 		Mesh = 2,
 		LinkedMesh = 3,
 		LinkedMesh = 3,
 		Path = 4,
 		Path = 4,
-		Point = 5
+		Point = 5,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1271,11 +1271,11 @@ declare module spine.canvas {
 		private tempColor;
 		private tempColor;
 		constructor(context: CanvasRenderingContext2D);
 		constructor(context: CanvasRenderingContext2D);
 		draw(skeleton: Skeleton): void;
 		draw(skeleton: Skeleton): void;
-		private drawImages;
-		private drawTriangles;
-		private drawTriangle;
-		private computeRegionVertices;
-		private computeMeshVertices;
+		private drawImages(skeleton);
+		private drawTriangles(skeleton);
+		private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2);
+		private computeRegionVertices(slot, region, pma);
+		private computeMeshVertices(slot, mesh, pma);
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1330,7 +1330,7 @@ declare module spine.webgl {
 		touchesPool: Pool<Touch>;
 		touchesPool: Pool<Touch>;
 		private listeners;
 		private listeners;
 		constructor(element: HTMLElement);
 		constructor(element: HTMLElement);
-		private setupCallbacks;
+		private setupCallbacks(element);
 		addListener(listener: InputListener): void;
 		addListener(listener: InputListener): void;
 		removeListener(listener: InputListener): void;
 		removeListener(listener: InputListener): void;
 	}
 	}
@@ -1439,7 +1439,7 @@ declare module spine.webgl {
 		drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void;
 		drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void;
 		bind(shader: Shader): void;
 		bind(shader: Shader): void;
 		unbind(shader: Shader): void;
 		unbind(shader: Shader): void;
-		private update;
+		private update();
 		restore(): void;
 		restore(): void;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -1465,7 +1465,7 @@ declare module spine.webgl {
 		constructor();
 		constructor();
 	}
 	}
 	enum VertexAttributeType {
 	enum VertexAttributeType {
-		Float = 0
+		Float = 0,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1484,7 +1484,7 @@ declare module spine.webgl {
 		begin(shader: Shader): void;
 		begin(shader: Shader): void;
 		setBlendMode(srcBlend: number, dstBlend: number): void;
 		setBlendMode(srcBlend: number, dstBlend: number): void;
 		draw(texture: GLTexture, vertices: ArrayLike<number>, indices: Array<number>): void;
 		draw(texture: GLTexture, vertices: ArrayLike<number>, indices: Array<number>): void;
-		private flush;
+		private flush();
 		end(): void;
 		end(): void;
 		getDrawCalls(): number;
 		getDrawCalls(): number;
 		dispose(): void;
 		dispose(): void;
@@ -1524,13 +1524,13 @@ declare module spine.webgl {
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		end(): void;
 		end(): void;
 		resize(resizeMode: ResizeMode): void;
 		resize(resizeMode: ResizeMode): void;
-		private enableRenderer;
+		private enableRenderer(renderer);
 		dispose(): void;
 		dispose(): void;
 	}
 	}
 	enum ResizeMode {
 	enum ResizeMode {
 		Stretch = 0,
 		Stretch = 0,
 		Expand = 1,
 		Expand = 1,
-		Fit = 2
+		Fit = 2,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1558,9 +1558,9 @@ declare module spine.webgl {
 		getVertexShaderSource(): string;
 		getVertexShaderSource(): string;
 		getFragmentSource(): string;
 		getFragmentSource(): string;
 		constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string);
 		constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string);
-		private compile;
-		private compileShader;
-		private compileProgram;
+		private compile();
+		private compileShader(type, source);
+		private compileProgram(vs, fs);
 		restore(): void;
 		restore(): void;
 		bind(): void;
 		bind(): void;
 		unbind(): void;
 		unbind(): void;
@@ -1607,16 +1607,16 @@ declare module spine.webgl {
 		polygon(polygonVertices: ArrayLike<number>, offset: number, count: number, color?: Color): void;
 		polygon(polygonVertices: ArrayLike<number>, offset: number, count: number, color?: Color): void;
 		circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
 		circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
-		private vertex;
+		private vertex(x, y, color);
 		end(): void;
 		end(): void;
-		private flush;
-		private check;
+		private flush();
+		private check(shapeType, numVertices);
 		dispose(): void;
 		dispose(): void;
 	}
 	}
 	enum ShapeType {
 	enum ShapeType {
 		Point = 0,
 		Point = 0,
 		Line = 1,
 		Line = 1,
-		Filled = 4
+		Filled = 4,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1756,9 +1756,9 @@ declare module spine.threejs {
 		private tempColor;
 		private tempColor;
 		constructor(skeletonData: SkeletonData);
 		constructor(skeletonData: SkeletonData);
 		update(deltaTime: number): void;
 		update(deltaTime: number): void;
-		private clearBatches;
-		private nextBatch;
-		private updateGeometry;
+		private clearBatches();
+		private nextBatch();
+		private updateGeometry();
 	}
 	}
 }
 }
 declare module spine.threejs {
 declare module spine.threejs {
@@ -1793,10 +1793,10 @@ declare module spine {
 		private loaded;
 		private loaded;
 		private bounds;
 		private bounds;
 		constructor(element: HTMLElement | string, config: SpineWidgetConfig);
 		constructor(element: HTMLElement | string, config: SpineWidgetConfig);
-		private validateConfig;
-		private load;
-		private render;
-		private resize;
+		private validateConfig(config);
+		private load();
+		private render();
+		private resize();
 		pause(): void;
 		pause(): void;
 		play(): void;
 		play(): void;
 		isPlaying(): boolean;
 		isPlaying(): boolean;
@@ -1804,7 +1804,7 @@ declare module spine {
 		static loadWidgets(): void;
 		static loadWidgets(): void;
 		static loadWidget(widget: HTMLElement): void;
 		static loadWidget(widget: HTMLElement): void;
 		static pageLoaded: boolean;
 		static pageLoaded: boolean;
-		private static ready;
+		private static ready();
 		static setupDOMListener(): void;
 		static setupDOMListener(): void;
 	}
 	}
 	class SpineWidgetConfig {
 	class SpineWidgetConfig {

+ 6 - 14
spine-ts/build/spine-all.js

@@ -1,10 +1,7 @@
 var __extends = (this && this.__extends) || (function () {
 var __extends = (this && this.__extends) || (function () {
-	var extendStatics = function (d, b) {
-		extendStatics = Object.setPrototypeOf ||
-			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-		return extendStatics(d, b);
-	}
+	var extendStatics = Object.setPrototypeOf ||
+		({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+		function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 	return function (d, b) {
 	return function (d, b) {
 		extendStatics(d, b);
 		extendStatics(d, b);
 		function __() { this.constructor = d; }
 		function __() { this.constructor = d; }
@@ -1333,11 +1330,11 @@ var spine;
 					var nextTime = current.trackLast - next.delay;
 					var nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -1380,13 +1377,8 @@ var spine;
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		};
 		};
 		AnimationState.prototype.apply = function (skeleton) {
 		AnimationState.prototype.apply = function (skeleton) {

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


+ 25 - 25
spine-ts/build/spine-canvas.d.ts

@@ -16,11 +16,11 @@ declare module spine {
 		setup = 0,
 		setup = 0,
 		first = 1,
 		first = 1,
 		replace = 2,
 		replace = 2,
-		add = 3
+		add = 3,
 	}
 	}
 	enum MixDirection {
 	enum MixDirection {
 		in = 0,
 		in = 0,
-		out = 1
+		out = 1,
 	}
 	}
 	enum TimelineType {
 	enum TimelineType {
 		rotate = 0,
 		rotate = 0,
@@ -37,7 +37,7 @@ declare module spine {
 		pathConstraintPosition = 11,
 		pathConstraintPosition = 11,
 		pathConstraintSpacing = 12,
 		pathConstraintSpacing = 12,
 		pathConstraintMix = 13,
 		pathConstraintMix = 13,
-		twoColor = 14
+		twoColor = 14,
 	}
 	}
 	abstract class CurveTimeline implements Timeline {
 	abstract class CurveTimeline implements Timeline {
 		static LINEAR: number;
 		static LINEAR: number;
@@ -341,7 +341,7 @@ declare module spine {
 		end = 2,
 		end = 2,
 		dispose = 3,
 		dispose = 3,
 		complete = 4,
 		complete = 4,
-		event = 5
+		event = 5,
 	}
 	}
 	interface AnimationStateListener2 {
 	interface AnimationStateListener2 {
 		start(entry: TrackEntry): void;
 		start(entry: TrackEntry): void;
@@ -380,8 +380,8 @@ declare module spine {
 		private toLoad;
 		private toLoad;
 		private loaded;
 		private loaded;
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
-		private static downloadText;
-		private static downloadBinary;
+		private static downloadText(url, success, error);
+		private static downloadBinary(url, success, error);
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
@@ -414,7 +414,7 @@ declare module spine {
 		Normal = 0,
 		Normal = 0,
 		Additive = 1,
 		Additive = 1,
 		Multiply = 2,
 		Multiply = 2,
-		Screen = 3
+		Screen = 3,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -483,7 +483,7 @@ declare module spine {
 		OnlyTranslation = 1,
 		OnlyTranslation = 1,
 		NoRotationOrReflection = 2,
 		NoRotationOrReflection = 2,
 		NoScale = 3,
 		NoScale = 3,
-		NoScaleOrReflection = 4
+		NoScaleOrReflection = 4,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -593,17 +593,17 @@ declare module spine {
 	}
 	}
 	enum PositionMode {
 	enum PositionMode {
 		Fixed = 0,
 		Fixed = 0,
-		Percent = 1
+		Percent = 1,
 	}
 	}
 	enum SpacingMode {
 	enum SpacingMode {
 		Length = 0,
 		Length = 0,
 		Fixed = 1,
 		Fixed = 1,
-		Percent = 2
+		Percent = 2,
 	}
 	}
 	enum RotateMode {
 	enum RotateMode {
 		Tangent = 0,
 		Tangent = 0,
 		Chain = 1,
 		Chain = 1,
-		ChainScale = 2
+		ChainScale = 2,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -614,12 +614,12 @@ declare module spine {
 		private rawAssets;
 		private rawAssets;
 		private errors;
 		private errors;
 		constructor(pathPrefix?: string);
 		constructor(pathPrefix?: string);
-		private queueAsset;
+		private queueAsset(clientId, textureLoader, path);
 		loadText(clientId: string, path: string): void;
 		loadText(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		get(clientId: string, path: string): any;
 		get(clientId: string, path: string): any;
-		private updateClientAssets;
+		private updateClientAssets(clientAssets);
 		isLoadingComplete(clientId: string): boolean;
 		isLoadingComplete(clientId: string): boolean;
 		dispose(): void;
 		dispose(): void;
 		hasErrors(): boolean;
 		hasErrors(): boolean;
@@ -823,12 +823,12 @@ declare module spine {
 		MipMapNearestNearest = 9984,
 		MipMapNearestNearest = 9984,
 		MipMapLinearNearest = 9985,
 		MipMapLinearNearest = 9985,
 		MipMapNearestLinear = 9986,
 		MipMapNearestLinear = 9986,
-		MipMapLinearLinear = 9987
+		MipMapLinearLinear = 9987,
 	}
 	}
 	enum TextureWrap {
 	enum TextureWrap {
 		MirroredRepeat = 33648,
 		MirroredRepeat = 33648,
 		ClampToEdge = 33071,
 		ClampToEdge = 33071,
-		Repeat = 10497
+		Repeat = 10497,
 	}
 	}
 	class TextureRegion {
 	class TextureRegion {
 		renderObject: any;
 		renderObject: any;
@@ -855,7 +855,7 @@ declare module spine {
 		pages: TextureAtlasPage[];
 		pages: TextureAtlasPage[];
 		regions: TextureAtlasRegion[];
 		regions: TextureAtlasRegion[];
 		constructor(atlasText: string, textureLoader: (path: string) => any);
 		constructor(atlasText: string, textureLoader: (path: string) => any);
-		private load;
+		private load(atlasText, textureLoader);
 		findRegion(name: string): TextureAtlasRegion;
 		findRegion(name: string): TextureAtlasRegion;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -931,9 +931,9 @@ declare module spine {
 		private polygonIndicesPool;
 		private polygonIndicesPool;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
-		private static isConcave;
-		private static positiveArea;
-		private static winding;
+		private static isConcave(index, vertexCount, vertices, indices);
+		private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y);
+		private static winding(p1x, p1y, p2x, p2y, p3x, p3y);
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1105,7 +1105,7 @@ declare module spine {
 		Mesh = 2,
 		Mesh = 2,
 		LinkedMesh = 3,
 		LinkedMesh = 3,
 		Path = 4,
 		Path = 4,
-		Point = 5
+		Point = 5,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1271,10 +1271,10 @@ declare module spine.canvas {
 		private tempColor;
 		private tempColor;
 		constructor(context: CanvasRenderingContext2D);
 		constructor(context: CanvasRenderingContext2D);
 		draw(skeleton: Skeleton): void;
 		draw(skeleton: Skeleton): void;
-		private drawImages;
-		private drawTriangles;
-		private drawTriangle;
-		private computeRegionVertices;
-		private computeMeshVertices;
+		private drawImages(skeleton);
+		private drawTriangles(skeleton);
+		private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2);
+		private computeRegionVertices(slot, region, pma);
+		private computeMeshVertices(slot, mesh, pma);
 	}
 	}
 }
 }

+ 6 - 14
spine-ts/build/spine-canvas.js

@@ -1,10 +1,7 @@
 var __extends = (this && this.__extends) || (function () {
 var __extends = (this && this.__extends) || (function () {
-	var extendStatics = function (d, b) {
-		extendStatics = Object.setPrototypeOf ||
-			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-		return extendStatics(d, b);
-	}
+	var extendStatics = Object.setPrototypeOf ||
+		({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+		function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 	return function (d, b) {
 	return function (d, b) {
 		extendStatics(d, b);
 		extendStatics(d, b);
 		function __() { this.constructor = d; }
 		function __() { this.constructor = d; }
@@ -1333,11 +1330,11 @@ var spine;
 					var nextTime = current.trackLast - next.delay;
 					var nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -1380,13 +1377,8 @@ var spine;
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		};
 		};
 		AnimationState.prototype.apply = function (skeleton) {
 		AnimationState.prototype.apply = function (skeleton) {

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


+ 20 - 20
spine-ts/build/spine-core.d.ts

@@ -16,11 +16,11 @@ declare module spine {
 		setup = 0,
 		setup = 0,
 		first = 1,
 		first = 1,
 		replace = 2,
 		replace = 2,
-		add = 3
+		add = 3,
 	}
 	}
 	enum MixDirection {
 	enum MixDirection {
 		in = 0,
 		in = 0,
-		out = 1
+		out = 1,
 	}
 	}
 	enum TimelineType {
 	enum TimelineType {
 		rotate = 0,
 		rotate = 0,
@@ -37,7 +37,7 @@ declare module spine {
 		pathConstraintPosition = 11,
 		pathConstraintPosition = 11,
 		pathConstraintSpacing = 12,
 		pathConstraintSpacing = 12,
 		pathConstraintMix = 13,
 		pathConstraintMix = 13,
-		twoColor = 14
+		twoColor = 14,
 	}
 	}
 	abstract class CurveTimeline implements Timeline {
 	abstract class CurveTimeline implements Timeline {
 		static LINEAR: number;
 		static LINEAR: number;
@@ -341,7 +341,7 @@ declare module spine {
 		end = 2,
 		end = 2,
 		dispose = 3,
 		dispose = 3,
 		complete = 4,
 		complete = 4,
-		event = 5
+		event = 5,
 	}
 	}
 	interface AnimationStateListener2 {
 	interface AnimationStateListener2 {
 		start(entry: TrackEntry): void;
 		start(entry: TrackEntry): void;
@@ -380,8 +380,8 @@ declare module spine {
 		private toLoad;
 		private toLoad;
 		private loaded;
 		private loaded;
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
-		private static downloadText;
-		private static downloadBinary;
+		private static downloadText(url, success, error);
+		private static downloadBinary(url, success, error);
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
@@ -414,7 +414,7 @@ declare module spine {
 		Normal = 0,
 		Normal = 0,
 		Additive = 1,
 		Additive = 1,
 		Multiply = 2,
 		Multiply = 2,
-		Screen = 3
+		Screen = 3,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -483,7 +483,7 @@ declare module spine {
 		OnlyTranslation = 1,
 		OnlyTranslation = 1,
 		NoRotationOrReflection = 2,
 		NoRotationOrReflection = 2,
 		NoScale = 3,
 		NoScale = 3,
-		NoScaleOrReflection = 4
+		NoScaleOrReflection = 4,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -593,17 +593,17 @@ declare module spine {
 	}
 	}
 	enum PositionMode {
 	enum PositionMode {
 		Fixed = 0,
 		Fixed = 0,
-		Percent = 1
+		Percent = 1,
 	}
 	}
 	enum SpacingMode {
 	enum SpacingMode {
 		Length = 0,
 		Length = 0,
 		Fixed = 1,
 		Fixed = 1,
-		Percent = 2
+		Percent = 2,
 	}
 	}
 	enum RotateMode {
 	enum RotateMode {
 		Tangent = 0,
 		Tangent = 0,
 		Chain = 1,
 		Chain = 1,
-		ChainScale = 2
+		ChainScale = 2,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -614,12 +614,12 @@ declare module spine {
 		private rawAssets;
 		private rawAssets;
 		private errors;
 		private errors;
 		constructor(pathPrefix?: string);
 		constructor(pathPrefix?: string);
-		private queueAsset;
+		private queueAsset(clientId, textureLoader, path);
 		loadText(clientId: string, path: string): void;
 		loadText(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		get(clientId: string, path: string): any;
 		get(clientId: string, path: string): any;
-		private updateClientAssets;
+		private updateClientAssets(clientAssets);
 		isLoadingComplete(clientId: string): boolean;
 		isLoadingComplete(clientId: string): boolean;
 		dispose(): void;
 		dispose(): void;
 		hasErrors(): boolean;
 		hasErrors(): boolean;
@@ -823,12 +823,12 @@ declare module spine {
 		MipMapNearestNearest = 9984,
 		MipMapNearestNearest = 9984,
 		MipMapLinearNearest = 9985,
 		MipMapLinearNearest = 9985,
 		MipMapNearestLinear = 9986,
 		MipMapNearestLinear = 9986,
-		MipMapLinearLinear = 9987
+		MipMapLinearLinear = 9987,
 	}
 	}
 	enum TextureWrap {
 	enum TextureWrap {
 		MirroredRepeat = 33648,
 		MirroredRepeat = 33648,
 		ClampToEdge = 33071,
 		ClampToEdge = 33071,
-		Repeat = 10497
+		Repeat = 10497,
 	}
 	}
 	class TextureRegion {
 	class TextureRegion {
 		renderObject: any;
 		renderObject: any;
@@ -855,7 +855,7 @@ declare module spine {
 		pages: TextureAtlasPage[];
 		pages: TextureAtlasPage[];
 		regions: TextureAtlasRegion[];
 		regions: TextureAtlasRegion[];
 		constructor(atlasText: string, textureLoader: (path: string) => any);
 		constructor(atlasText: string, textureLoader: (path: string) => any);
-		private load;
+		private load(atlasText, textureLoader);
 		findRegion(name: string): TextureAtlasRegion;
 		findRegion(name: string): TextureAtlasRegion;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -931,9 +931,9 @@ declare module spine {
 		private polygonIndicesPool;
 		private polygonIndicesPool;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
-		private static isConcave;
-		private static positiveArea;
-		private static winding;
+		private static isConcave(index, vertexCount, vertices, indices);
+		private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y);
+		private static winding(p1x, p1y, p2x, p2y, p3x, p3y);
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1105,7 +1105,7 @@ declare module spine {
 		Mesh = 2,
 		Mesh = 2,
 		LinkedMesh = 3,
 		LinkedMesh = 3,
 		Path = 4,
 		Path = 4,
-		Point = 5
+		Point = 5,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {

+ 6 - 14
spine-ts/build/spine-core.js

@@ -1,10 +1,7 @@
 var __extends = (this && this.__extends) || (function () {
 var __extends = (this && this.__extends) || (function () {
-	var extendStatics = function (d, b) {
-		extendStatics = Object.setPrototypeOf ||
-			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-		return extendStatics(d, b);
-	}
+	var extendStatics = Object.setPrototypeOf ||
+		({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+		function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 	return function (d, b) {
 	return function (d, b) {
 		extendStatics(d, b);
 		extendStatics(d, b);
 		function __() { this.constructor = d; }
 		function __() { this.constructor = d; }
@@ -1333,11 +1330,11 @@ var spine;
 					var nextTime = current.trackLast - next.delay;
 					var nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -1380,13 +1377,8 @@ var spine;
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		};
 		};
 		AnimationState.prototype.apply = function (skeleton) {
 		AnimationState.prototype.apply = function (skeleton) {

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


+ 23 - 23
spine-ts/build/spine-threejs.d.ts

@@ -16,11 +16,11 @@ declare module spine {
 		setup = 0,
 		setup = 0,
 		first = 1,
 		first = 1,
 		replace = 2,
 		replace = 2,
-		add = 3
+		add = 3,
 	}
 	}
 	enum MixDirection {
 	enum MixDirection {
 		in = 0,
 		in = 0,
-		out = 1
+		out = 1,
 	}
 	}
 	enum TimelineType {
 	enum TimelineType {
 		rotate = 0,
 		rotate = 0,
@@ -37,7 +37,7 @@ declare module spine {
 		pathConstraintPosition = 11,
 		pathConstraintPosition = 11,
 		pathConstraintSpacing = 12,
 		pathConstraintSpacing = 12,
 		pathConstraintMix = 13,
 		pathConstraintMix = 13,
-		twoColor = 14
+		twoColor = 14,
 	}
 	}
 	abstract class CurveTimeline implements Timeline {
 	abstract class CurveTimeline implements Timeline {
 		static LINEAR: number;
 		static LINEAR: number;
@@ -341,7 +341,7 @@ declare module spine {
 		end = 2,
 		end = 2,
 		dispose = 3,
 		dispose = 3,
 		complete = 4,
 		complete = 4,
-		event = 5
+		event = 5,
 	}
 	}
 	interface AnimationStateListener2 {
 	interface AnimationStateListener2 {
 		start(entry: TrackEntry): void;
 		start(entry: TrackEntry): void;
@@ -380,8 +380,8 @@ declare module spine {
 		private toLoad;
 		private toLoad;
 		private loaded;
 		private loaded;
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
-		private static downloadText;
-		private static downloadBinary;
+		private static downloadText(url, success, error);
+		private static downloadBinary(url, success, error);
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
@@ -414,7 +414,7 @@ declare module spine {
 		Normal = 0,
 		Normal = 0,
 		Additive = 1,
 		Additive = 1,
 		Multiply = 2,
 		Multiply = 2,
-		Screen = 3
+		Screen = 3,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -483,7 +483,7 @@ declare module spine {
 		OnlyTranslation = 1,
 		OnlyTranslation = 1,
 		NoRotationOrReflection = 2,
 		NoRotationOrReflection = 2,
 		NoScale = 3,
 		NoScale = 3,
-		NoScaleOrReflection = 4
+		NoScaleOrReflection = 4,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -593,17 +593,17 @@ declare module spine {
 	}
 	}
 	enum PositionMode {
 	enum PositionMode {
 		Fixed = 0,
 		Fixed = 0,
-		Percent = 1
+		Percent = 1,
 	}
 	}
 	enum SpacingMode {
 	enum SpacingMode {
 		Length = 0,
 		Length = 0,
 		Fixed = 1,
 		Fixed = 1,
-		Percent = 2
+		Percent = 2,
 	}
 	}
 	enum RotateMode {
 	enum RotateMode {
 		Tangent = 0,
 		Tangent = 0,
 		Chain = 1,
 		Chain = 1,
-		ChainScale = 2
+		ChainScale = 2,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -614,12 +614,12 @@ declare module spine {
 		private rawAssets;
 		private rawAssets;
 		private errors;
 		private errors;
 		constructor(pathPrefix?: string);
 		constructor(pathPrefix?: string);
-		private queueAsset;
+		private queueAsset(clientId, textureLoader, path);
 		loadText(clientId: string, path: string): void;
 		loadText(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		get(clientId: string, path: string): any;
 		get(clientId: string, path: string): any;
-		private updateClientAssets;
+		private updateClientAssets(clientAssets);
 		isLoadingComplete(clientId: string): boolean;
 		isLoadingComplete(clientId: string): boolean;
 		dispose(): void;
 		dispose(): void;
 		hasErrors(): boolean;
 		hasErrors(): boolean;
@@ -823,12 +823,12 @@ declare module spine {
 		MipMapNearestNearest = 9984,
 		MipMapNearestNearest = 9984,
 		MipMapLinearNearest = 9985,
 		MipMapLinearNearest = 9985,
 		MipMapNearestLinear = 9986,
 		MipMapNearestLinear = 9986,
-		MipMapLinearLinear = 9987
+		MipMapLinearLinear = 9987,
 	}
 	}
 	enum TextureWrap {
 	enum TextureWrap {
 		MirroredRepeat = 33648,
 		MirroredRepeat = 33648,
 		ClampToEdge = 33071,
 		ClampToEdge = 33071,
-		Repeat = 10497
+		Repeat = 10497,
 	}
 	}
 	class TextureRegion {
 	class TextureRegion {
 		renderObject: any;
 		renderObject: any;
@@ -855,7 +855,7 @@ declare module spine {
 		pages: TextureAtlasPage[];
 		pages: TextureAtlasPage[];
 		regions: TextureAtlasRegion[];
 		regions: TextureAtlasRegion[];
 		constructor(atlasText: string, textureLoader: (path: string) => any);
 		constructor(atlasText: string, textureLoader: (path: string) => any);
-		private load;
+		private load(atlasText, textureLoader);
 		findRegion(name: string): TextureAtlasRegion;
 		findRegion(name: string): TextureAtlasRegion;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -931,9 +931,9 @@ declare module spine {
 		private polygonIndicesPool;
 		private polygonIndicesPool;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
-		private static isConcave;
-		private static positiveArea;
-		private static winding;
+		private static isConcave(index, vertexCount, vertices, indices);
+		private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y);
+		private static winding(p1x, p1y, p2x, p2y, p3x, p3y);
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1105,7 +1105,7 @@ declare module spine {
 		Mesh = 2,
 		Mesh = 2,
 		LinkedMesh = 3,
 		LinkedMesh = 3,
 		Path = 4,
 		Path = 4,
-		Point = 5
+		Point = 5,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1290,9 +1290,9 @@ declare module spine.threejs {
 		private tempColor;
 		private tempColor;
 		constructor(skeletonData: SkeletonData);
 		constructor(skeletonData: SkeletonData);
 		update(deltaTime: number): void;
 		update(deltaTime: number): void;
-		private clearBatches;
-		private nextBatch;
-		private updateGeometry;
+		private clearBatches();
+		private nextBatch();
+		private updateGeometry();
 	}
 	}
 }
 }
 declare module spine.threejs {
 declare module spine.threejs {

+ 6 - 14
spine-ts/build/spine-threejs.js

@@ -1,10 +1,7 @@
 var __extends = (this && this.__extends) || (function () {
 var __extends = (this && this.__extends) || (function () {
-	var extendStatics = function (d, b) {
-		extendStatics = Object.setPrototypeOf ||
-			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-		return extendStatics(d, b);
-	}
+	var extendStatics = Object.setPrototypeOf ||
+		({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+		function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 	return function (d, b) {
 	return function (d, b) {
 		extendStatics(d, b);
 		extendStatics(d, b);
 		function __() { this.constructor = d; }
 		function __() { this.constructor = d; }
@@ -1333,11 +1330,11 @@ var spine;
 					var nextTime = current.trackLast - next.delay;
 					var nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -1380,13 +1377,8 @@ var spine;
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		};
 		};
 		AnimationState.prototype.apply = function (skeleton) {
 		AnimationState.prototype.apply = function (skeleton) {

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


+ 33 - 33
spine-ts/build/spine-webgl.d.ts

@@ -16,11 +16,11 @@ declare module spine {
 		setup = 0,
 		setup = 0,
 		first = 1,
 		first = 1,
 		replace = 2,
 		replace = 2,
-		add = 3
+		add = 3,
 	}
 	}
 	enum MixDirection {
 	enum MixDirection {
 		in = 0,
 		in = 0,
-		out = 1
+		out = 1,
 	}
 	}
 	enum TimelineType {
 	enum TimelineType {
 		rotate = 0,
 		rotate = 0,
@@ -37,7 +37,7 @@ declare module spine {
 		pathConstraintPosition = 11,
 		pathConstraintPosition = 11,
 		pathConstraintSpacing = 12,
 		pathConstraintSpacing = 12,
 		pathConstraintMix = 13,
 		pathConstraintMix = 13,
-		twoColor = 14
+		twoColor = 14,
 	}
 	}
 	abstract class CurveTimeline implements Timeline {
 	abstract class CurveTimeline implements Timeline {
 		static LINEAR: number;
 		static LINEAR: number;
@@ -341,7 +341,7 @@ declare module spine {
 		end = 2,
 		end = 2,
 		dispose = 3,
 		dispose = 3,
 		complete = 4,
 		complete = 4,
-		event = 5
+		event = 5,
 	}
 	}
 	interface AnimationStateListener2 {
 	interface AnimationStateListener2 {
 		start(entry: TrackEntry): void;
 		start(entry: TrackEntry): void;
@@ -380,8 +380,8 @@ declare module spine {
 		private toLoad;
 		private toLoad;
 		private loaded;
 		private loaded;
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
-		private static downloadText;
-		private static downloadBinary;
+		private static downloadText(url, success, error);
+		private static downloadBinary(url, success, error);
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
@@ -414,7 +414,7 @@ declare module spine {
 		Normal = 0,
 		Normal = 0,
 		Additive = 1,
 		Additive = 1,
 		Multiply = 2,
 		Multiply = 2,
-		Screen = 3
+		Screen = 3,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -483,7 +483,7 @@ declare module spine {
 		OnlyTranslation = 1,
 		OnlyTranslation = 1,
 		NoRotationOrReflection = 2,
 		NoRotationOrReflection = 2,
 		NoScale = 3,
 		NoScale = 3,
-		NoScaleOrReflection = 4
+		NoScaleOrReflection = 4,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -593,17 +593,17 @@ declare module spine {
 	}
 	}
 	enum PositionMode {
 	enum PositionMode {
 		Fixed = 0,
 		Fixed = 0,
-		Percent = 1
+		Percent = 1,
 	}
 	}
 	enum SpacingMode {
 	enum SpacingMode {
 		Length = 0,
 		Length = 0,
 		Fixed = 1,
 		Fixed = 1,
-		Percent = 2
+		Percent = 2,
 	}
 	}
 	enum RotateMode {
 	enum RotateMode {
 		Tangent = 0,
 		Tangent = 0,
 		Chain = 1,
 		Chain = 1,
-		ChainScale = 2
+		ChainScale = 2,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -614,12 +614,12 @@ declare module spine {
 		private rawAssets;
 		private rawAssets;
 		private errors;
 		private errors;
 		constructor(pathPrefix?: string);
 		constructor(pathPrefix?: string);
-		private queueAsset;
+		private queueAsset(clientId, textureLoader, path);
 		loadText(clientId: string, path: string): void;
 		loadText(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		get(clientId: string, path: string): any;
 		get(clientId: string, path: string): any;
-		private updateClientAssets;
+		private updateClientAssets(clientAssets);
 		isLoadingComplete(clientId: string): boolean;
 		isLoadingComplete(clientId: string): boolean;
 		dispose(): void;
 		dispose(): void;
 		hasErrors(): boolean;
 		hasErrors(): boolean;
@@ -823,12 +823,12 @@ declare module spine {
 		MipMapNearestNearest = 9984,
 		MipMapNearestNearest = 9984,
 		MipMapLinearNearest = 9985,
 		MipMapLinearNearest = 9985,
 		MipMapNearestLinear = 9986,
 		MipMapNearestLinear = 9986,
-		MipMapLinearLinear = 9987
+		MipMapLinearLinear = 9987,
 	}
 	}
 	enum TextureWrap {
 	enum TextureWrap {
 		MirroredRepeat = 33648,
 		MirroredRepeat = 33648,
 		ClampToEdge = 33071,
 		ClampToEdge = 33071,
-		Repeat = 10497
+		Repeat = 10497,
 	}
 	}
 	class TextureRegion {
 	class TextureRegion {
 		renderObject: any;
 		renderObject: any;
@@ -855,7 +855,7 @@ declare module spine {
 		pages: TextureAtlasPage[];
 		pages: TextureAtlasPage[];
 		regions: TextureAtlasRegion[];
 		regions: TextureAtlasRegion[];
 		constructor(atlasText: string, textureLoader: (path: string) => any);
 		constructor(atlasText: string, textureLoader: (path: string) => any);
-		private load;
+		private load(atlasText, textureLoader);
 		findRegion(name: string): TextureAtlasRegion;
 		findRegion(name: string): TextureAtlasRegion;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -931,9 +931,9 @@ declare module spine {
 		private polygonIndicesPool;
 		private polygonIndicesPool;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
-		private static isConcave;
-		private static positiveArea;
-		private static winding;
+		private static isConcave(index, vertexCount, vertices, indices);
+		private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y);
+		private static winding(p1x, p1y, p2x, p2y, p3x, p3y);
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1105,7 +1105,7 @@ declare module spine {
 		Mesh = 2,
 		Mesh = 2,
 		LinkedMesh = 3,
 		LinkedMesh = 3,
 		Path = 4,
 		Path = 4,
-		Point = 5
+		Point = 5,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1299,7 +1299,7 @@ declare module spine.webgl {
 		touchesPool: Pool<Touch>;
 		touchesPool: Pool<Touch>;
 		private listeners;
 		private listeners;
 		constructor(element: HTMLElement);
 		constructor(element: HTMLElement);
-		private setupCallbacks;
+		private setupCallbacks(element);
 		addListener(listener: InputListener): void;
 		addListener(listener: InputListener): void;
 		removeListener(listener: InputListener): void;
 		removeListener(listener: InputListener): void;
 	}
 	}
@@ -1408,7 +1408,7 @@ declare module spine.webgl {
 		drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void;
 		drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void;
 		bind(shader: Shader): void;
 		bind(shader: Shader): void;
 		unbind(shader: Shader): void;
 		unbind(shader: Shader): void;
-		private update;
+		private update();
 		restore(): void;
 		restore(): void;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -1434,7 +1434,7 @@ declare module spine.webgl {
 		constructor();
 		constructor();
 	}
 	}
 	enum VertexAttributeType {
 	enum VertexAttributeType {
-		Float = 0
+		Float = 0,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1453,7 +1453,7 @@ declare module spine.webgl {
 		begin(shader: Shader): void;
 		begin(shader: Shader): void;
 		setBlendMode(srcBlend: number, dstBlend: number): void;
 		setBlendMode(srcBlend: number, dstBlend: number): void;
 		draw(texture: GLTexture, vertices: ArrayLike<number>, indices: Array<number>): void;
 		draw(texture: GLTexture, vertices: ArrayLike<number>, indices: Array<number>): void;
-		private flush;
+		private flush();
 		end(): void;
 		end(): void;
 		getDrawCalls(): number;
 		getDrawCalls(): number;
 		dispose(): void;
 		dispose(): void;
@@ -1493,13 +1493,13 @@ declare module spine.webgl {
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		end(): void;
 		end(): void;
 		resize(resizeMode: ResizeMode): void;
 		resize(resizeMode: ResizeMode): void;
-		private enableRenderer;
+		private enableRenderer(renderer);
 		dispose(): void;
 		dispose(): void;
 	}
 	}
 	enum ResizeMode {
 	enum ResizeMode {
 		Stretch = 0,
 		Stretch = 0,
 		Expand = 1,
 		Expand = 1,
-		Fit = 2
+		Fit = 2,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1527,9 +1527,9 @@ declare module spine.webgl {
 		getVertexShaderSource(): string;
 		getVertexShaderSource(): string;
 		getFragmentSource(): string;
 		getFragmentSource(): string;
 		constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string);
 		constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string);
-		private compile;
-		private compileShader;
-		private compileProgram;
+		private compile();
+		private compileShader(type, source);
+		private compileProgram(vs, fs);
 		restore(): void;
 		restore(): void;
 		bind(): void;
 		bind(): void;
 		unbind(): void;
 		unbind(): void;
@@ -1576,16 +1576,16 @@ declare module spine.webgl {
 		polygon(polygonVertices: ArrayLike<number>, offset: number, count: number, color?: Color): void;
 		polygon(polygonVertices: ArrayLike<number>, offset: number, count: number, color?: Color): void;
 		circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
 		circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
-		private vertex;
+		private vertex(x, y, color);
 		end(): void;
 		end(): void;
-		private flush;
-		private check;
+		private flush();
+		private check(shapeType, numVertices);
 		dispose(): void;
 		dispose(): void;
 	}
 	}
 	enum ShapeType {
 	enum ShapeType {
 		Point = 0,
 		Point = 0,
 		Line = 1,
 		Line = 1,
-		Filled = 4
+		Filled = 4,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {

+ 6 - 14
spine-ts/build/spine-webgl.js

@@ -1,10 +1,7 @@
 var __extends = (this && this.__extends) || (function () {
 var __extends = (this && this.__extends) || (function () {
-	var extendStatics = function (d, b) {
-		extendStatics = Object.setPrototypeOf ||
-			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-		return extendStatics(d, b);
-	}
+	var extendStatics = Object.setPrototypeOf ||
+		({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+		function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 	return function (d, b) {
 	return function (d, b) {
 		extendStatics(d, b);
 		extendStatics(d, b);
 		function __() { this.constructor = d; }
 		function __() { this.constructor = d; }
@@ -1333,11 +1330,11 @@ var spine;
 					var nextTime = current.trackLast - next.delay;
 					var nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -1380,13 +1377,8 @@ var spine;
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		};
 		};
 		AnimationState.prototype.apply = function (skeleton) {
 		AnimationState.prototype.apply = function (skeleton) {

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


+ 38 - 38
spine-ts/build/spine-widget.d.ts

@@ -16,11 +16,11 @@ declare module spine {
 		setup = 0,
 		setup = 0,
 		first = 1,
 		first = 1,
 		replace = 2,
 		replace = 2,
-		add = 3
+		add = 3,
 	}
 	}
 	enum MixDirection {
 	enum MixDirection {
 		in = 0,
 		in = 0,
-		out = 1
+		out = 1,
 	}
 	}
 	enum TimelineType {
 	enum TimelineType {
 		rotate = 0,
 		rotate = 0,
@@ -37,7 +37,7 @@ declare module spine {
 		pathConstraintPosition = 11,
 		pathConstraintPosition = 11,
 		pathConstraintSpacing = 12,
 		pathConstraintSpacing = 12,
 		pathConstraintMix = 13,
 		pathConstraintMix = 13,
-		twoColor = 14
+		twoColor = 14,
 	}
 	}
 	abstract class CurveTimeline implements Timeline {
 	abstract class CurveTimeline implements Timeline {
 		static LINEAR: number;
 		static LINEAR: number;
@@ -341,7 +341,7 @@ declare module spine {
 		end = 2,
 		end = 2,
 		dispose = 3,
 		dispose = 3,
 		complete = 4,
 		complete = 4,
-		event = 5
+		event = 5,
 	}
 	}
 	interface AnimationStateListener2 {
 	interface AnimationStateListener2 {
 		start(entry: TrackEntry): void;
 		start(entry: TrackEntry): void;
@@ -380,8 +380,8 @@ declare module spine {
 		private toLoad;
 		private toLoad;
 		private loaded;
 		private loaded;
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
 		constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
-		private static downloadText;
-		private static downloadBinary;
+		private static downloadText(url, success, error);
+		private static downloadBinary(url, success, error);
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
 		loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
@@ -414,7 +414,7 @@ declare module spine {
 		Normal = 0,
 		Normal = 0,
 		Additive = 1,
 		Additive = 1,
 		Multiply = 2,
 		Multiply = 2,
-		Screen = 3
+		Screen = 3,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -483,7 +483,7 @@ declare module spine {
 		OnlyTranslation = 1,
 		OnlyTranslation = 1,
 		NoRotationOrReflection = 2,
 		NoRotationOrReflection = 2,
 		NoScale = 3,
 		NoScale = 3,
-		NoScaleOrReflection = 4
+		NoScaleOrReflection = 4,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -593,17 +593,17 @@ declare module spine {
 	}
 	}
 	enum PositionMode {
 	enum PositionMode {
 		Fixed = 0,
 		Fixed = 0,
-		Percent = 1
+		Percent = 1,
 	}
 	}
 	enum SpacingMode {
 	enum SpacingMode {
 		Length = 0,
 		Length = 0,
 		Fixed = 1,
 		Fixed = 1,
-		Percent = 2
+		Percent = 2,
 	}
 	}
 	enum RotateMode {
 	enum RotateMode {
 		Tangent = 0,
 		Tangent = 0,
 		Chain = 1,
 		Chain = 1,
-		ChainScale = 2
+		ChainScale = 2,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -614,12 +614,12 @@ declare module spine {
 		private rawAssets;
 		private rawAssets;
 		private errors;
 		private errors;
 		constructor(pathPrefix?: string);
 		constructor(pathPrefix?: string);
-		private queueAsset;
+		private queueAsset(clientId, textureLoader, path);
 		loadText(clientId: string, path: string): void;
 		loadText(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadJson(clientId: string, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
 		get(clientId: string, path: string): any;
 		get(clientId: string, path: string): any;
-		private updateClientAssets;
+		private updateClientAssets(clientAssets);
 		isLoadingComplete(clientId: string): boolean;
 		isLoadingComplete(clientId: string): boolean;
 		dispose(): void;
 		dispose(): void;
 		hasErrors(): boolean;
 		hasErrors(): boolean;
@@ -823,12 +823,12 @@ declare module spine {
 		MipMapNearestNearest = 9984,
 		MipMapNearestNearest = 9984,
 		MipMapLinearNearest = 9985,
 		MipMapLinearNearest = 9985,
 		MipMapNearestLinear = 9986,
 		MipMapNearestLinear = 9986,
-		MipMapLinearLinear = 9987
+		MipMapLinearLinear = 9987,
 	}
 	}
 	enum TextureWrap {
 	enum TextureWrap {
 		MirroredRepeat = 33648,
 		MirroredRepeat = 33648,
 		ClampToEdge = 33071,
 		ClampToEdge = 33071,
-		Repeat = 10497
+		Repeat = 10497,
 	}
 	}
 	class TextureRegion {
 	class TextureRegion {
 		renderObject: any;
 		renderObject: any;
@@ -855,7 +855,7 @@ declare module spine {
 		pages: TextureAtlasPage[];
 		pages: TextureAtlasPage[];
 		regions: TextureAtlasRegion[];
 		regions: TextureAtlasRegion[];
 		constructor(atlasText: string, textureLoader: (path: string) => any);
 		constructor(atlasText: string, textureLoader: (path: string) => any);
-		private load;
+		private load(atlasText, textureLoader);
 		findRegion(name: string): TextureAtlasRegion;
 		findRegion(name: string): TextureAtlasRegion;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -931,9 +931,9 @@ declare module spine {
 		private polygonIndicesPool;
 		private polygonIndicesPool;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		triangulate(verticesArray: ArrayLike<number>): Array<number>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
 		decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
-		private static isConcave;
-		private static positiveArea;
-		private static winding;
+		private static isConcave(index, vertexCount, vertices, indices);
+		private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y);
+		private static winding(p1x, p1y, p2x, p2y, p3x, p3y);
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1105,7 +1105,7 @@ declare module spine {
 		Mesh = 2,
 		Mesh = 2,
 		LinkedMesh = 3,
 		LinkedMesh = 3,
 		Path = 4,
 		Path = 4,
-		Point = 5
+		Point = 5,
 	}
 	}
 }
 }
 declare module spine {
 declare module spine {
@@ -1299,7 +1299,7 @@ declare module spine.webgl {
 		touchesPool: Pool<Touch>;
 		touchesPool: Pool<Touch>;
 		private listeners;
 		private listeners;
 		constructor(element: HTMLElement);
 		constructor(element: HTMLElement);
-		private setupCallbacks;
+		private setupCallbacks(element);
 		addListener(listener: InputListener): void;
 		addListener(listener: InputListener): void;
 		removeListener(listener: InputListener): void;
 		removeListener(listener: InputListener): void;
 	}
 	}
@@ -1408,7 +1408,7 @@ declare module spine.webgl {
 		drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void;
 		drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void;
 		bind(shader: Shader): void;
 		bind(shader: Shader): void;
 		unbind(shader: Shader): void;
 		unbind(shader: Shader): void;
-		private update;
+		private update();
 		restore(): void;
 		restore(): void;
 		dispose(): void;
 		dispose(): void;
 	}
 	}
@@ -1434,7 +1434,7 @@ declare module spine.webgl {
 		constructor();
 		constructor();
 	}
 	}
 	enum VertexAttributeType {
 	enum VertexAttributeType {
-		Float = 0
+		Float = 0,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1453,7 +1453,7 @@ declare module spine.webgl {
 		begin(shader: Shader): void;
 		begin(shader: Shader): void;
 		setBlendMode(srcBlend: number, dstBlend: number): void;
 		setBlendMode(srcBlend: number, dstBlend: number): void;
 		draw(texture: GLTexture, vertices: ArrayLike<number>, indices: Array<number>): void;
 		draw(texture: GLTexture, vertices: ArrayLike<number>, indices: Array<number>): void;
-		private flush;
+		private flush();
 		end(): void;
 		end(): void;
 		getDrawCalls(): number;
 		getDrawCalls(): number;
 		dispose(): void;
 		dispose(): void;
@@ -1493,13 +1493,13 @@ declare module spine.webgl {
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		end(): void;
 		end(): void;
 		resize(resizeMode: ResizeMode): void;
 		resize(resizeMode: ResizeMode): void;
-		private enableRenderer;
+		private enableRenderer(renderer);
 		dispose(): void;
 		dispose(): void;
 	}
 	}
 	enum ResizeMode {
 	enum ResizeMode {
 		Stretch = 0,
 		Stretch = 0,
 		Expand = 1,
 		Expand = 1,
-		Fit = 2
+		Fit = 2,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1527,9 +1527,9 @@ declare module spine.webgl {
 		getVertexShaderSource(): string;
 		getVertexShaderSource(): string;
 		getFragmentSource(): string;
 		getFragmentSource(): string;
 		constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string);
 		constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string);
-		private compile;
-		private compileShader;
-		private compileProgram;
+		private compile();
+		private compileShader(type, source);
+		private compileProgram(vs, fs);
 		restore(): void;
 		restore(): void;
 		bind(): void;
 		bind(): void;
 		unbind(): void;
 		unbind(): void;
@@ -1576,16 +1576,16 @@ declare module spine.webgl {
 		polygon(polygonVertices: ArrayLike<number>, offset: number, count: number, color?: Color): void;
 		polygon(polygonVertices: ArrayLike<number>, offset: number, count: number, color?: Color): void;
 		circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
 		circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
 		curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
-		private vertex;
+		private vertex(x, y, color);
 		end(): void;
 		end(): void;
-		private flush;
-		private check;
+		private flush();
+		private check(shapeType, numVertices);
 		dispose(): void;
 		dispose(): void;
 	}
 	}
 	enum ShapeType {
 	enum ShapeType {
 		Point = 0,
 		Point = 0,
 		Line = 1,
 		Line = 1,
-		Filled = 4
+		Filled = 4,
 	}
 	}
 }
 }
 declare module spine.webgl {
 declare module spine.webgl {
@@ -1703,10 +1703,10 @@ declare module spine {
 		private loaded;
 		private loaded;
 		private bounds;
 		private bounds;
 		constructor(element: HTMLElement | string, config: SpineWidgetConfig);
 		constructor(element: HTMLElement | string, config: SpineWidgetConfig);
-		private validateConfig;
-		private load;
-		private render;
-		private resize;
+		private validateConfig(config);
+		private load();
+		private render();
+		private resize();
 		pause(): void;
 		pause(): void;
 		play(): void;
 		play(): void;
 		isPlaying(): boolean;
 		isPlaying(): boolean;
@@ -1714,7 +1714,7 @@ declare module spine {
 		static loadWidgets(): void;
 		static loadWidgets(): void;
 		static loadWidget(widget: HTMLElement): void;
 		static loadWidget(widget: HTMLElement): void;
 		static pageLoaded: boolean;
 		static pageLoaded: boolean;
-		private static ready;
+		private static ready();
 		static setupDOMListener(): void;
 		static setupDOMListener(): void;
 	}
 	}
 	class SpineWidgetConfig {
 	class SpineWidgetConfig {

+ 6 - 14
spine-ts/build/spine-widget.js

@@ -1,10 +1,7 @@
 var __extends = (this && this.__extends) || (function () {
 var __extends = (this && this.__extends) || (function () {
-	var extendStatics = function (d, b) {
-		extendStatics = Object.setPrototypeOf ||
-			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-		return extendStatics(d, b);
-	}
+	var extendStatics = Object.setPrototypeOf ||
+		({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+		function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 	return function (d, b) {
 	return function (d, b) {
 		extendStatics(d, b);
 		extendStatics(d, b);
 		function __() { this.constructor = d; }
 		function __() { this.constructor = d; }
@@ -1333,11 +1330,11 @@ var spine;
 					var nextTime = current.trackLast - next.delay;
 					var nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -1380,13 +1377,8 @@ var spine;
 				}
 				}
 				return finished;
 				return finished;
 			}
 			}
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		};
 		};
 		AnimationState.prototype.apply = function (skeleton) {
 		AnimationState.prototype.apply = function (skeleton) {

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


+ 3 - 9
spine-ts/core/src/AnimationState.ts

@@ -76,11 +76,11 @@ module spine {
 					let nextTime = current.trackLast - next.delay;
 					let nextTime = current.trackLast - next.delay;
 					if (nextTime >= 0) {
 					if (nextTime >= 0) {
 						next.delay = 0;
 						next.delay = 0;
-						next.trackTime = nextTime + delta * next.timeScale;
+						next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
 						current.trackTime += currentDelta;
 						current.trackTime += currentDelta;
 						this.setCurrent(i, next, true);
 						this.setCurrent(i, next, true);
 						while (next.mixingFrom != null) {
 						while (next.mixingFrom != null) {
-							next.mixTime += currentDelta;
+							next.mixTime += delta;
 							next = next.mixingFrom;
 							next = next.mixingFrom;
 						}
 						}
 						continue;
 						continue;
@@ -129,14 +129,8 @@ module spine {
 				return finished;
 				return finished;
 			}
 			}
 
 
-			if (to.timeScale == 0 && to.mixingTo != null) {
-				to.timeScale = 1;
-				to.mixTime = 0;
-				to.mixDuration = 0;
-			}
-
 			from.trackTime += delta * from.timeScale;
 			from.trackTime += delta * from.timeScale;
-			to.mixTime += delta * to.timeScale;
+			to.mixTime += delta;
 			return false;
 			return false;
 		}
 		}
 
 

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