private void _advanceFadeTime(float passedTime) { var isFadeOut = _fadeState > 0; if (_subFadeState < 0) // Fade start event. { _subFadeState = 0; var eventType = isFadeOut? EventObject.FADE_OUT: EventObject.FADE_IN; if (_armature.eventDispatcher.HasEventListener(eventType)) { var eventObject = BaseObject.BorrowObject <EventObject>(); eventObject.animationState = this; _armature._bufferEvent(eventObject, eventType); } } if (passedTime < 0.0f) { passedTime = -passedTime; } _fadeTime += passedTime; if (_fadeTime >= fadeTotalTime) // Fade complete. { _subFadeState = 1; _fadeProgress = isFadeOut ? 0.0f : 1.0f; } else if (_fadeTime > 0.0f) // Fading. { _fadeProgress = isFadeOut ? (1.0f - _fadeTime / fadeTotalTime) : (_fadeTime / fadeTotalTime); } else // Before fade. { _fadeProgress = isFadeOut ? 1.0f : 0.0f; } if (_subFadeState > 0) // Fade complete event. { if (!isFadeOut) { _playheadState |= 1; // x1 _fadeState = 0; } var eventType = isFadeOut ? EventObject.FADE_OUT_COMPLETE : EventObject.FADE_IN_COMPLETE; if (_armature.eventDispatcher.HasEventListener(eventType)) { var eventObject = BaseObject.BorrowObject <EventObject>(); eventObject.animationState = this; _armature._bufferEvent(eventObject, eventType); } } }
/** * @private */ private void _advanceFadeTime(float passedTime) { if (passedTime < 0.0f) { passedTime = -passedTime; } _fadeTime += passedTime; var fadeProgress = 0.0f; if (_fadeTime >= fadeTotalTime) // Fade complete. { fadeProgress = _fadeState > 0 ? 0.0f : 1.0f; } else if (_fadeTime > 0.0f) // Fading. { fadeProgress = _fadeState > 0 ? (1 - _fadeTime / fadeTotalTime) : (_fadeTime / fadeTotalTime); } else // Before fade. { fadeProgress = _fadeState > 0 ? 1.0f : 0.0f; } if (_fadeProgress != fadeProgress) { _fadeProgress = fadeProgress; var eventDispatcher = _armature._eventDispatcher; if (_fadeTime <= passedTime) { if (_fadeState > 0) { if (eventDispatcher.HasEventListener(EventObject.FADE_OUT)) { var evt = BaseObject.BorrowObject <EventObject>(); evt.animationState = this; _armature._bufferEvent(evt, EventObject.FADE_OUT); } } else { if (eventDispatcher.HasEventListener(EventObject.FADE_IN)) { var evt = BaseObject.BorrowObject <EventObject>(); evt.animationState = this; _armature._bufferEvent(evt, EventObject.FADE_IN); } } } if (_fadeTime >= fadeTotalTime) { if (_fadeState > 0) { if (eventDispatcher.HasEventListener(EventObject.FADE_OUT_COMPLETE)) { var evt = BaseObject.BorrowObject <EventObject>(); evt.animationState = this; _armature._bufferEvent(evt, EventObject.FADE_OUT_COMPLETE); } } else { _isPausePlayhead = false; _fadeState = 0; if (eventDispatcher.HasEventListener(EventObject.FADE_IN_COMPLETE)) { var evt = BaseObject.BorrowObject <EventObject>(); evt.animationState = this; _armature._bufferEvent(evt, EventObject.FADE_IN_COMPLETE); } } } } }