UNPKG

pixi-dragonbones-runtime

Version:
3 lines (2 loc) 17.6 kB
import{BaseObject as t}from"../core/BaseObject.mjs";import"../core/DragonBones.mjs";import{EventObject as e}from"../event/EventObject.mjs";import{Transform as i}from"../geom/Transform.mjs";import{TimelineState as s,MutilpleValueTimelineState as r,DoubleValueTimelineState as a,SingleValueTimelineState as n,TweenTimelineState as h}from"./BaseTimelineState.mjs";class l extends s{static toString(){return"[class dragonBones.ActionTimelineState]"}_onCrossFrame(i){const s=this._armature.eventDispatcher;if(this._animationState.actionEnabled){const r=this._animationData.frameOffset+this._timelineArray[this._timelineData.offset+5+i],a=this._frameArray[r+1],n=this._animationData.parent.actions;for(let i=0;i<a;++i){const a=n[this._frameArray[r+2+i]];if(0===a.type){const i=t.borrowObject(e);i.time=this._frameArray[r]/this._frameRate,i.animationState=this._animationState,e.actionDataToInstance(a,i,this._armature),this._armature._bufferAction(i,!0)}else{const i=10===a.type?e.FRAME_EVENT:e.SOUND_EVENT;if(11===a.type||s.hasDBEventListener(i)){const i=t.borrowObject(e);i.time=this._frameArray[r]/this._frameRate,i.animationState=this._animationState,e.actionDataToInstance(a,i,this._armature),this._armature._dragonBones.bufferEvent(i)}}}}}_onArriveAtFrame(){}_onUpdateFrame(){}update(i){const s=this.playState;let r=this.currentPlayTimes,a=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.START)){const i=t.borrowObject(e);i.type=e.START,i.armature=this._armature,i.animationState=this._animationState,this._armature._dragonBones.bufferEvent(i)}}const h=this._animationState.timeScale<0;let l=null,_=null;if(i&&this.currentPlayTimes!==r&&(n.hasDBEventListener(e.LOOP_COMPLETE)&&(l=t.borrowObject(e),l.type=e.LOOP_COMPLETE,l.armature=this._armature,l.animationState=this._animationState),this.playState>0&&n.hasDBEventListener(e.COMPLETE)&&(_=t.borrowObject(e),_.type=e.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],h){if(e<0){const s=Math.floor(a*this._frameRate);e=this._frameIndices[t.frameIndicesOffset+s],this.currentPlayTimes===r&&e===i&&(e=-1)}for(;e>=0;){const s=this._animationData.frameOffset+this._timelineArray[t.offset+5+e],r=this._frameArray[s]/this._frameRate;if(this._position<=r&&r<=this._position+this._duration&&this._onCrossFrame(e),null!==l&&0===e&&(this._armature._dragonBones.bufferEvent(l),l=null),e>0?e--:e=this._frameCount-1,e===i)break}}else{if(e<0){const s=Math.floor(a*this._frameRate);e=this._frameIndices[t.frameIndicesOffset+s];const n=this._animationData.frameOffset+this._timelineArray[t.offset+5+e],h=this._frameArray[n]/this._frameRate;this.currentPlayTimes===r&&(a<=h?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],r=this._frameArray[s]/this._frameRate;if(this._position<=r&&r<=this._position+this._duration&&this._onCrossFrame(e),null!==l&&0===e&&(this._armature._dragonBones.bufferEvent(l),l=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===r?a<=t&&this._onCrossFrame(this._frameIndex):this._position<=t&&(h||null===l||(this._armature._dragonBones.bufferEvent(l),l=null),this._onCrossFrame(this._frameIndex))}null!==l&&this._armature._dragonBones.bufferEvent(l),null!==_&&this._armature._dragonBones.bufferEvent(_)}}setCurrentTime(t){this._setCurrentTime(t),this._frameIndex=-1}}class _ extends s{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 f extends r{static toString(){return"[class dragonBones.BoneAllTimelineState]"}_onArriveAtFrame(){super._onArriveAtFrame(),this._isTween&&this._frameIndex===this._frameCount-1&&(this._rd[2]=i.normalizeRadian(this._rd[2]),this._rd[3]=i.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.normalizeRadian(this._rd[2]),this._rd[3]=i.normalizeRadian(this._rd[3])}blend(t){const e=this._armature.armatureData.scale,i=this._rd,s=this.target,r=s.target,a=s.blendWeight,n=r.animationPose;s.dirty>1?(n.x+=i[0]*a*e,n.y+=i[1]*a*e,n.rotation+=i[2]*a,n.skew+=i[3]*a,n.scaleX+=(i[4]-1)*a,n.scaleY+=(i[5]-1)*a):(n.x=i[0]*a*e,n.y=i[1]*a*e,n.rotation=i[2]*a,n.skew=i[3]*a,n.scaleX=(i[4]-1)*a+1,n.scaleY=(i[5]-1)*a+1),(t||this.dirty)&&(this.dirty=!1,r._transformDirty=!0)}}class o extends a{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,r=i.animationPose;e.dirty>1?(r.x+=this._resultA*s,r.y+=this._resultB*s):1!==s?(r.x=this._resultA*s,r.y=this._resultB*s):(r.x=this._resultA,r.y=this._resultB),(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class u extends a{static toString(){return"[class dragonBones.BoneRotateTimelineState]"}_onArriveAtFrame(){super._onArriveAtFrame(),this._isTween&&this._frameIndex===this._frameCount-1&&(this._differenceA=i.normalizeRadian(this._differenceA),this._differenceB=i.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.normalizeRadian(this._resultA),this._resultB=i.normalizeRadian(this._resultB)}blend(t){const e=this.target,i=e.target,s=e.blendWeight,r=i.animationPose;e.dirty>1?(r.rotation+=this._resultA*s,r.skew+=this._resultB*s):1!==s?(r.rotation=this._resultA*s,r.skew=this._resultB*s):(r.rotation=this._resultA,r.skew=this._resultB),(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class m extends a{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,r=i.animationPose;e.dirty>1?(r.scaleX+=(this._resultA-1)*s,r.scaleY+=(this._resultB-1)*s):1!==s?(r.scaleX=(this._resultA-1)*s+1,r.scaleY=(this._resultB-1)*s+1):(r.scaleX=this._resultA,r.scaleY=this._resultB),(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class d extends r{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,r=i._deformVertices,a=this._valueArray;if(null!==a){const t=this._valueCount,i=this._deformOffset,n=this._sameValueOffset,h=this._rd;for(let l=0;l<this._deformCount;++l){let _=0;_=l<i?a[n+l]:l<i+t?h[l-i]:a[n+l-t],e.dirty>1?r[l]+=_*s:r[l]=_*s}}else if(1===e.dirty)for(let t=0;t<this._deformCount;++t)r[t]=0;(t||this.dirty)&&(this.dirty=!1,i._transformDirty=!0)}}class c extends n{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 p extends s{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 y extends h{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 r=i[s];r<0&&(r+=65536),this._isTween?(this._current[0]=e[r++],this._current[1]=e[r++],this._current[2]=e[r++],this._current[3]=e[r++],this._current[4]=e[r++],this._current[5]=e[r++],this._current[6]=e[r++],this._current[7]=e[r++],r=this._frameIndex===this._frameCount-1?i[this._animationData.frameIntOffset+this._frameValueOffset]:i[s+1],r<0&&(r+=65536),this._difference[0]=e[r++]-this._current[0],this._difference[1]=e[r++]-this._current[1],this._difference[2]=e[r++]-this._current[2],this._difference[3]=e[r++]-this._current[3],this._difference[4]=e[r++]-this._current[4],this._difference[5]=e[r++]-this._current[5],this._difference[6]=e[r++]-this._current[6],this._difference[7]=e[r++]-this._current[7]):(this._result[0]=.01*e[r++],this._result[1]=.01*e[r++],this._result[2]=.01*e[r++],this._result[3]=.01*e[r++],this._result[4]=e[r++],this._result[5]=e[r++],this._result[6]=e[r++],this._result[7]=e[r++])}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 g extends n{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 O extends r{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,r=this.displayFrame.deformVertices,a=this._valueArray;if(null!==a){const t=this._valueCount,i=this._deformOffset,n=this._sameValueOffset,h=this._rd;for(let l=0;l<this._deformCount;++l){let _=0;_=l<i?a[n+l]:l<i+t?h[l-i]:a[n+l-t],e.dirty>1?r[l]+=_*s:r[l]=_*s}}else if(1===e.dirty)for(let t=0;t<this._deformCount;++t)r[t]=0;(t||this.dirty)&&(this.dirty=!1,i._geometryData===this.displayFrame.getGeometryData()&&(i._verticesDirty=!0))}}class A extends a{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 D extends n{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 v extends n{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 a{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}}export{l as ActionTimelineState,c as AlphaTimelineState,S as AnimationParametersTimelineState,D as AnimationProgressTimelineState,v as AnimationWeightTimelineState,f as BoneAllTimelineState,u as BoneRotateTimelineState,m as BoneScaleTimelineState,o as BoneTranslateTimelineState,O as DeformTimelineState,A as IKConstraintTimelineState,y as SlotColorTimelineState,p as SlotDisplayTimelineState,g as SlotZIndexTimelineState,d as SurfaceTimelineState,_ as ZOrderTimelineState}; //# sourceMappingURL=TimelineState.mjs.map