pixi-dragonbones-runtime
Version:
DragonBones Runtime for Pixi.js
3 lines (2 loc) • 18.2 kB
JavaScript
"use strict";var t=require("../core/BaseObject.cjs");require("../core/DragonBones.cjs");var e=require("../event/EventObject.cjs"),i=require("../geom/Transform.cjs"),s=require("./BaseTimelineState.cjs");class a extends s.TimelineState{static toString(){return"[class dragonBones.ActionTimelineState]"}_onCrossFrame(i){const s=this._armature.eventDispatcher;if(this._animationState.actionEnabled){const a=this._animationData.frameOffset+this._timelineArray[this._timelineData.offset+5+i],r=this._frameArray[a+1],n=this._animationData.parent.actions;for(let i=0;i<r;++i){const r=n[this._frameArray[a+2+i]];if(0===r.type){const i=t.BaseObject.borrowObject(e.EventObject);i.time=this._frameArray[a]/this._frameRate,i.animationState=this._animationState,e.EventObject.actionDataToInstance(r,i,this._armature),this._armature._bufferAction(i,!0)}else{const i=10===r.type?e.EventObject.FRAME_EVENT:e.EventObject.SOUND_EVENT;if(11===r.type||s.hasDBEventListener(i)){const i=t.BaseObject.borrowObject(e.EventObject);i.time=this._frameArray[a]/this._frameRate,i.animationState=this._animationState,e.EventObject.actionDataToInstance(r,i,this._armature),this._armature._dragonBones.bufferEvent(i)}}}}}_onArriveAtFrame(){}_onUpdateFrame(){}update(i){const s=this.playState;let a=this.currentPlayTimes,r=this.currentTime;if(this._setCurrentTime(i)){const i=null===this._animationState._parent&&this._animationState.actionEnabled,n=this._armature.eventDispatcher;if(s<0){if(this.playState===s)return;if(this._animationState.displayControl&&this._animationState.resetToPose&&this._armature._sortZOrder(null,0),i&&n.hasDBEventListener(e.EventObject.START)){const i=t.BaseObject.borrowObject(e.EventObject);i.type=e.EventObject.START,i.armature=this._armature,i.animationState=this._animationState,this._armature._dragonBones.bufferEvent(i)}}const l=this._animationState.timeScale<0;let h=null,_=null;if(i&&this.currentPlayTimes!==a&&(n.hasDBEventListener(e.EventObject.LOOP_COMPLETE)&&(h=t.BaseObject.borrowObject(e.EventObject),h.type=e.EventObject.LOOP_COMPLETE,h.armature=this._armature,h.animationState=this._animationState),this.playState>0&&n.hasDBEventListener(e.EventObject.COMPLETE)&&(_=t.BaseObject.borrowObject(e.EventObject),_.type=e.EventObject.COMPLETE,_.armature=this._armature,_.animationState=this._animationState)),this._frameCount>1){const t=this._timelineData,e=Math.floor(this.currentTime*this._frameRate),i=this._frameIndices[t.frameIndicesOffset+e];if(this._frameIndex!==i){let e=this._frameIndex;if(this._frameIndex=i,null!==this._timelineArray)if(this._frameOffset=this._animationData.frameOffset+this._timelineArray[t.offset+5+this._frameIndex],l){if(e<0){const s=Math.floor(r*this._frameRate);e=this._frameIndices[t.frameIndicesOffset+s],this.currentPlayTimes===a&&e===i&&(e=-1)}for(;e>=0;){const s=this._animationData.frameOffset+this._timelineArray[t.offset+5+e],a=this._frameArray[s]/this._frameRate;if(this._position<=a&&a<=this._position+this._duration&&this._onCrossFrame(e),null!==h&&0===e&&(this._armature._dragonBones.bufferEvent(h),h=null),e>0?e--:e=this._frameCount-1,e===i)break}}else{if(e<0){const s=Math.floor(r*this._frameRate);e=this._frameIndices[t.frameIndicesOffset+s];const n=this._animationData.frameOffset+this._timelineArray[t.offset+5+e],l=this._frameArray[n]/this._frameRate;this.currentPlayTimes===a&&(r<=l?e>0?e--:e=this._frameCount-1:e===i&&(e=-1))}for(;e>=0;){e<this._frameCount-1?e++:e=0;const s=this._animationData.frameOffset+this._timelineArray[t.offset+5+e],a=this._frameArray[s]/this._frameRate;if(this._position<=a&&a<=this._position+this._duration&&this._onCrossFrame(e),null!==h&&0===e&&(this._armature._dragonBones.bufferEvent(h),h=null),e===i)break}}}}else if(this._frameIndex<0&&(this._frameIndex=0,null!==this._timelineData)){this._frameOffset=this._animationData.frameOffset+this._timelineArray[this._timelineData.offset+5];const t=this._frameArray[this._frameOffset]/this._frameRate;this.currentPlayTimes===a?r<=t&&this._onCrossFrame(this._frameIndex):this._position<=t&&(l||null===h||(this._armature._dragonBones.bufferEvent(h),h=null),this._onCrossFrame(this._frameIndex))}null!==h&&this._armature._dragonBones.bufferEvent(h),null!==_&&this._armature._dragonBones.bufferEvent(_)}}setCurrentTime(t){this._setCurrentTime(t),this._frameIndex=-1}}class r extends s.TimelineState{static toString(){return"[class dragonBones.ZOrderTimelineState]"}_onArriveAtFrame(){if(this.playState>=0){this._frameArray[this._frameOffset+1]>0?this._armature._sortZOrder(this._frameArray,this._frameOffset+2):this._armature._sortZOrder(null,0)}}_onUpdateFrame(){}}class n extends s.MutilpleValueTimelineState{static toString(){return"[class dragonBones.BoneAllTimelineState]"}_onArriveAtFrame(){super._onArriveAtFrame(),this._isTween&&this._frameIndex===this._frameCount-1&&(this._rd[2]=i.Transform.normalizeRadian(this._rd[2]),this._rd[3]=i.Transform.normalizeRadian(this._rd[3])),null===this._timelineData&&(this._rd[4]=1,this._rd[5]=1)}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameFloatOffset,this._valueCount=6,this._valueArray=this._animationData.parent.parent.frameFloatArray}fadeOut(){this.dirty=!1,this._rd[2]=i.Transform.normalizeRadian(this._rd[2]),this._rd[3]=i.Transform.normalizeRadian(this._rd[3])}blend(t){const e=this._armature.armatureData.scale,i=this._rd,s=this.target,a=s.target,r=s.blendWeight,n=a.animationPose;s.dirty>1?(n.x+=i[0]*r*e,n.y+=i[1]*r*e,n.rotation+=i[2]*r,n.skew+=i[3]*r,n.scaleX+=(i[4]-1)*r,n.scaleY+=(i[5]-1)*r):(n.x=i[0]*r*e,n.y=i[1]*r*e,n.rotation=i[2]*r,n.skew=i[3]*r,n.scaleX=(i[4]-1)*r+1,n.scaleY=(i[5]-1)*r+1),(t||this.dirty)&&(this.dirty=!1,a._transformDirty=!0)}}class l extends s.DoubleValueTimelineState{static toString(){return"[class dragonBones.BoneTranslateTimelineState]"}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameFloatOffset,this._valueScale=this._armature.armatureData.scale,this._valueArray=this._animationData.parent.parent.frameFloatArray}blend(t){const e=this.target,i=e.target,s=e.blendWeight,a=i.animationPose;e.dirty>1?(a.x+=this._resultA*s,a.y+=this._resultB*s):1!==s?(a.x=this._resultA*s,a.y=this._resultB*s):(a.x=this._resultA,a.y=this._resultB),(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class h extends s.DoubleValueTimelineState{static toString(){return"[class dragonBones.BoneRotateTimelineState]"}_onArriveAtFrame(){super._onArriveAtFrame(),this._isTween&&this._frameIndex===this._frameCount-1&&(this._differenceA=i.Transform.normalizeRadian(this._differenceA),this._differenceB=i.Transform.normalizeRadian(this._differenceB))}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameFloatOffset,this._valueArray=this._animationData.parent.parent.frameFloatArray}fadeOut(){this.dirty=!1,this._resultA=i.Transform.normalizeRadian(this._resultA),this._resultB=i.Transform.normalizeRadian(this._resultB)}blend(t){const e=this.target,i=e.target,s=e.blendWeight,a=i.animationPose;e.dirty>1?(a.rotation+=this._resultA*s,a.skew+=this._resultB*s):1!==s?(a.rotation=this._resultA*s,a.skew=this._resultB*s):(a.rotation=this._resultA,a.skew=this._resultB),(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class _ extends s.DoubleValueTimelineState{static toString(){return"[class dragonBones.BoneScaleTimelineState]"}_onArriveAtFrame(){super._onArriveAtFrame(),null===this._timelineData&&(this._resultA=1,this._resultB=1)}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameFloatOffset,this._valueArray=this._animationData.parent.parent.frameFloatArray}blend(t){const e=this.target,i=e.target,s=e.blendWeight,a=i.animationPose;e.dirty>1?(a.scaleX+=(this._resultA-1)*s,a.scaleY+=(this._resultB-1)*s):1!==s?(a.scaleX=(this._resultA-1)*s+1,a.scaleY=(this._resultB-1)*s+1):(a.scaleX=this._resultA,a.scaleY=this._resultB),(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class o extends s.MutilpleValueTimelineState{static toString(){return"[class dragonBones.SurfaceTimelineState]"}_onClear(){super._onClear(),this._deformCount=0,this._deformOffset=0,this._sameValueOffset=0}init(t,e,i){if(super.init(t,e,i),null!==this._timelineData){const t=this._animationData.parent.parent,e=t.frameIntArray,i=this._animationData.frameIntOffset+this._timelineArray[this._timelineData.offset+3];this._valueOffset=this._animationData.frameFloatOffset,this._valueCount=e[i+2],this._deformCount=e[i+1],this._deformOffset=e[i+3],this._sameValueOffset=e[i+4]+this._animationData.frameFloatOffset,this._valueScale=this._armature.armatureData.scale,this._valueArray=t.frameFloatArray,this._rd.length=2*this._valueCount}else this._deformCount=this.target.target._deformVertices.length}blend(t){const e=this.target,i=e.target,s=e.blendWeight,a=i._deformVertices,r=this._valueArray;if(null!==r){const t=this._valueCount,i=this._deformOffset,n=this._sameValueOffset,l=this._rd;for(let h=0;h<this._deformCount;++h){let _=0;_=h<i?r[n+h]:h<i+t?l[h-i]:r[n+h-t],e.dirty>1?a[h]+=_*s:a[h]=_*s}}else if(1===e.dirty)for(let t=0;t<this._deformCount;++t)a[t]=0;(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class f extends s.SingleValueTimelineState{static toString(){return"[class dragonBones.AlphaTimelineState]"}_onArriveAtFrame(){super._onArriveAtFrame(),null===this._timelineData&&(this._result=1)}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameIntOffset,this._valueScale=.01,this._valueArray=this._animationData.parent.parent.frameIntArray}blend(t){const e=this.target,i=e.target,s=e.blendWeight;e.dirty>1?(i._alpha+=this._result*s,i._alpha>1&&(i._alpha=1)):i._alpha=this._result*s,(t||this.dirty)&&(this.dirty=!1,this._armature._alphaDirty=!0)}}class u extends s.TimelineState{static toString(){return"[class dragonBones.SlotDisplayTimelineState]"}_onArriveAtFrame(){if(this.playState>=0){const t=this.target,e=null!==this._timelineData?this._frameArray[this._frameOffset+1]:t._slotData.displayIndex;t.displayIndex!==e&&t._setDisplayIndex(e,!0)}}_onUpdateFrame(){}}class m extends s.TweenTimelineState{constructor(){super(...arguments),this._current=[0,0,0,0,0,0,0,0],this._difference=[0,0,0,0,0,0,0,0],this._result=[0,0,0,0,0,0,0,0]}static toString(){return"[class dragonBones.SlotColorTimelineState]"}_onArriveAtFrame(){if(super._onArriveAtFrame(),null!==this._timelineData){const t=this._animationData.parent.parent,e=t.colorArray,i=t.frameIntArray,s=this._animationData.frameIntOffset+this._frameValueOffset+this._frameIndex;let a=i[s];a<0&&(a+=65536),this._isTween?(this._current[0]=e[a++],this._current[1]=e[a++],this._current[2]=e[a++],this._current[3]=e[a++],this._current[4]=e[a++],this._current[5]=e[a++],this._current[6]=e[a++],this._current[7]=e[a++],a=this._frameIndex===this._frameCount-1?i[this._animationData.frameIntOffset+this._frameValueOffset]:i[s+1],a<0&&(a+=65536),this._difference[0]=e[a++]-this._current[0],this._difference[1]=e[a++]-this._current[1],this._difference[2]=e[a++]-this._current[2],this._difference[3]=e[a++]-this._current[3],this._difference[4]=e[a++]-this._current[4],this._difference[5]=e[a++]-this._current[5],this._difference[6]=e[a++]-this._current[6],this._difference[7]=e[a++]-this._current[7]):(this._result[0]=.01*e[a++],this._result[1]=.01*e[a++],this._result[2]=.01*e[a++],this._result[3]=.01*e[a++],this._result[4]=e[a++],this._result[5]=e[a++],this._result[6]=e[a++],this._result[7]=e[a++])}else{const t=this.target.slotData.color;this._result[0]=t.alphaMultiplier,this._result[1]=t.redMultiplier,this._result[2]=t.greenMultiplier,this._result[3]=t.blueMultiplier,this._result[4]=t.alphaOffset,this._result[5]=t.redOffset,this._result[6]=t.greenOffset,this._result[7]=t.blueOffset}}_onUpdateFrame(){super._onUpdateFrame(),this._isTween&&(this._result[0]=.01*(this._current[0]+this._difference[0]*this._tweenProgress),this._result[1]=.01*(this._current[1]+this._difference[1]*this._tweenProgress),this._result[2]=.01*(this._current[2]+this._difference[2]*this._tweenProgress),this._result[3]=.01*(this._current[3]+this._difference[3]*this._tweenProgress),this._result[4]=this._current[4]+this._difference[4]*this._tweenProgress,this._result[5]=this._current[5]+this._difference[5]*this._tweenProgress,this._result[6]=this._current[6]+this._difference[6]*this._tweenProgress,this._result[7]=this._current[7]+this._difference[7]*this._tweenProgress)}fadeOut(){this._isTween=!1}update(t){if(super.update(t),this._isTween||this.dirty){const t=this.target,e=t._colorTransform;if(0!==this._animationState._fadeState||0!==this._animationState._subFadeState){if(e.alphaMultiplier!==this._result[0]||e.redMultiplier!==this._result[1]||e.greenMultiplier!==this._result[2]||e.blueMultiplier!==this._result[3]||e.alphaOffset!==this._result[4]||e.redOffset!==this._result[5]||e.greenOffset!==this._result[6]||e.blueOffset!==this._result[7]){const i=Math.pow(this._animationState._fadeProgress,4);e.alphaMultiplier+=(this._result[0]-e.alphaMultiplier)*i,e.redMultiplier+=(this._result[1]-e.redMultiplier)*i,e.greenMultiplier+=(this._result[2]-e.greenMultiplier)*i,e.blueMultiplier+=(this._result[3]-e.blueMultiplier)*i,e.alphaOffset+=(this._result[4]-e.alphaOffset)*i,e.redOffset+=(this._result[5]-e.redOffset)*i,e.greenOffset+=(this._result[6]-e.greenOffset)*i,e.blueOffset+=(this._result[7]-e.blueOffset)*i,t._colorDirty=!0}}else this.dirty&&(this.dirty=!1,e.alphaMultiplier===this._result[0]&&e.redMultiplier===this._result[1]&&e.greenMultiplier===this._result[2]&&e.blueMultiplier===this._result[3]&&e.alphaOffset===this._result[4]&&e.redOffset===this._result[5]&&e.greenOffset===this._result[6]&&e.blueOffset===this._result[7]||(e.alphaMultiplier=this._result[0],e.redMultiplier=this._result[1],e.greenMultiplier=this._result[2],e.blueMultiplier=this._result[3],e.alphaOffset=this._result[4],e.redOffset=this._result[5],e.greenOffset=this._result[6],e.blueOffset=this._result[7],t._colorDirty=!0))}}}class c extends s.SingleValueTimelineState{static toString(){return"[class dragonBones.SlotZIndexTimelineState]"}_onArriveAtFrame(){if(super._onArriveAtFrame(),null===this._timelineData){const t=this.target.target;this._result=t.slotData.zIndex}}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameIntOffset,this._valueArray=this._animationData.parent.parent.frameIntArray}blend(t){const e=this.target,i=e.target,s=e.blendWeight;e.dirty>1?i._zIndex+=this._result*s:i._zIndex=this._result*s,(t||this.dirty)&&(this.dirty=!1,this._armature._zIndexDirty=!0)}}class d extends s.MutilpleValueTimelineState{static toString(){return"[class dragonBones.DeformTimelineState]"}_onClear(){super._onClear(),this.displayFrame=null,this._deformCount=0,this._deformOffset=0,this._sameValueOffset=0}init(t,e,i){if(super.init(t,e,i),null!==this._timelineData){const t=this._animationData.frameIntOffset+this._timelineArray[this._timelineData.offset+3],e=this._animationData.parent.parent,i=e.frameIntArray;this._valueOffset=this._animationData.frameFloatOffset,this._valueCount=i[t+2],this._deformCount=i[t+1],this._deformOffset=i[t+3],this._sameValueOffset=i[t+4],this._sameValueOffset<0&&(this._sameValueOffset+=65536),this._sameValueOffset+=this._animationData.frameFloatOffset,this._valueScale=this._armature.armatureData.scale,this._valueArray=e.frameFloatArray,this._rd.length=2*this._valueCount}else this._deformCount=this.displayFrame.deformVertices.length}blend(t){const e=this.target,i=e.target,s=e.blendWeight,a=this.displayFrame.deformVertices,r=this._valueArray;if(null!==r){const t=this._valueCount,i=this._deformOffset,n=this._sameValueOffset,l=this._rd;for(let h=0;h<this._deformCount;++h){let _=0;_=h<i?r[n+h]:h<i+t?l[h-i]:r[n+h-t],e.dirty>1?a[h]+=_*s:a[h]=_*s}}else if(1===e.dirty)for(let t=0;t<this._deformCount;++t)a[t]=0;(t||this.dirty)&&(this.dirty=!1,i._geometryData===this.displayFrame.getGeometryData()&&(i._verticesDirty=!0))}}class p extends s.DoubleValueTimelineState{static toString(){return"[class dragonBones.IKConstraintTimelineState]"}_onUpdateFrame(){super._onUpdateFrame();const t=this.target;if(null!==this._timelineData)t._bendPositive=this._currentA>0,t._weight=this._currentB;else{const e=t._constraintData;t._bendPositive=e.bendPositive,t._weight=e.weight}t.invalidUpdate(),this.dirty=!1}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameIntOffset,this._valueScale=.01,this._valueArray=this._animationData.parent.parent.frameIntArray}}class O extends s.SingleValueTimelineState{static toString(){return"[class dragonBones.AnimationProgressTimelineState]"}_onUpdateFrame(){super._onUpdateFrame();const t=this.target;null!==t._parent&&(t.currentTime=this._result*t.totalTime),this.dirty=!1}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameIntOffset,this._valueScale=1e-4,this._valueArray=this._animationData.parent.parent.frameIntArray}}class y extends s.SingleValueTimelineState{static toString(){return"[class dragonBones.AnimationWeightTimelineState]"}_onUpdateFrame(){super._onUpdateFrame();const t=this.target;null!==t._parent&&(t.weight=this._result),this.dirty=!1}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameIntOffset,this._valueScale=1e-4,this._valueArray=this._animationData.parent.parent.frameIntArray}}class S extends s.DoubleValueTimelineState{static toString(){return"[class dragonBones.AnimationParametersTimelineState]"}_onUpdateFrame(){super._onUpdateFrame();const t=this.target;null!==t._parent&&(t.parameterX=this._resultA,t.parameterY=this._resultB),this.dirty=!1}init(t,e,i){super.init(t,e,i),this._valueOffset=this._animationData.frameIntOffset,this._valueScale=1e-4,this._valueArray=this._animationData.parent.parent.frameIntArray}}exports.ActionTimelineState=a,exports.AlphaTimelineState=f,exports.AnimationParametersTimelineState=S,exports.AnimationProgressTimelineState=O,exports.AnimationWeightTimelineState=y,exports.BoneAllTimelineState=n,exports.BoneRotateTimelineState=h,exports.BoneScaleTimelineState=_,exports.BoneTranslateTimelineState=l,exports.DeformTimelineState=d,exports.IKConstraintTimelineState=p,exports.SlotColorTimelineState=m,exports.SlotDisplayTimelineState=u,exports.SlotZIndexTimelineState=c,exports.SurfaceTimelineState=o,exports.ZOrderTimelineState=r;
//# sourceMappingURL=TimelineState.cjs.map