49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 
 | ||
|  | cc.game.once(cc.game.EVENT_ENGINE_INITED, function () { | ||
|  | 
 | ||
|  | 	cc.js.mixin(sp.Skeleton.prototype, { | ||
|  | 		update(dt) { | ||
|  | 			// if (CC_EDITOR) return;
 | ||
|  | 
 | ||
|  | 			if (CC_EDITOR) { | ||
|  | 				cc.engine._animatingInEditMode = 1; | ||
|  | 				cc.engine.animatingInEditMode = 1; | ||
|  | 			} | ||
|  | 
 | ||
|  | 			if (this.paused) return; | ||
|  | 
 | ||
|  | 			dt *= this.timeScale * sp.timeScale; | ||
|  | 
 | ||
|  | 			if (this.isAnimationCached()) { | ||
|  | 
 | ||
|  | 				// Cache mode and has animation queue.
 | ||
|  | 				if (this._isAniComplete) { | ||
|  | 					if (this._animationQueue.length === 0 && !this._headAniInfo) { | ||
|  | 						let frameCache = this._frameCache; | ||
|  | 						if (frameCache && frameCache.isInvalid()) { | ||
|  | 							frameCache.updateToFrame(); | ||
|  | 							let frames = frameCache.frames; | ||
|  | 							this._curFrame = frames[frames.length - 1]; | ||
|  | 						} | ||
|  | 						return; | ||
|  | 					} | ||
|  | 					if (!this._headAniInfo) { | ||
|  | 						this._headAniInfo = this._animationQueue.shift(); | ||
|  | 					} | ||
|  | 					this._accTime += dt; | ||
|  | 					if (this._accTime > this._headAniInfo.delay) { | ||
|  | 						let aniInfo = this._headAniInfo; | ||
|  | 						this._headAniInfo = null; | ||
|  | 						this.setAnimation(0, aniInfo.animationName, aniInfo.loop); | ||
|  | 					} | ||
|  | 					return; | ||
|  | 				} | ||
|  | 
 | ||
|  | 				this._updateCache(dt); | ||
|  | 			} else { | ||
|  | 				this._updateRealtime(dt); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	}); | ||
|  | }); |