From 5c632b6c4f31fd464ae986efa0544a4f0d227815 Mon Sep 17 00:00:00 2001 From: owen <1053210246@qq.com> Date: Tue, 19 Nov 2019 14:41:24 +0800 Subject: [PATCH] fix spine cache mode event type bug --- engine/jsb-spine-skeleton.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/engine/jsb-spine-skeleton.js b/engine/jsb-spine-skeleton.js index a16ccf69..d89ff9fa 100644 --- a/engine/jsb-spine-skeleton.js +++ b/engine/jsb-spine-skeleton.js @@ -601,7 +601,15 @@ skeleton.setStartListener = function (listener) { this._startListener = listener; if (this._nativeSkeleton) { - this._nativeSkeleton.setStartListener(listener); + if (this.isAnimationCached()) { + this._nativeSkeleton.setStartListener(function (animationName) { + let self = this._comp; + self._startEntry.animation.name = animationName; + self._startListener && self._startListener(self._startEntry); + }); + } else { + this._nativeSkeleton.setStartListener(listener); + } } }; @@ -615,7 +623,15 @@ skeleton.setEndListener = function (listener) { this._endListener = listener; if (this._nativeSkeleton) { - this._nativeSkeleton.setEndListener(listener); + if (this.isAnimationCached()) { + this._nativeSkeleton.setEndListener(function (animationName) { + let self = this._comp; + self._endEntry.animation.name = animationName; + self._endListener && self._endListener(self._endEntry); + }); + } else { + this._nativeSkeleton.setEndListener(listener); + } } }; @@ -629,7 +645,15 @@ skeleton.setCompleteListener = function (listener) { this._completeListener = listener; if (this._nativeSkeleton) { - this._nativeSkeleton.setCompleteListener(listener); + if (this.isAnimationCached()) { + this._nativeSkeleton.setCompleteListener(function (animationName) { + let self = this._comp; + self._endEntry.animation.name = animationName; + self._completeListener && self._completeListener(self._endEntry); + }); + } else { + this._nativeSkeleton.setCompleteListener(listener); + } } };