spine动画监听动作播放完成重复执行
Cocos Creator 3.8.5 中动画重复触发 setCompleteListener 的问题已在后续版本中修复。根据官方发布的修复记录,Cocos Creator 3.8.7 版本修复了动画监听器异常触发的问题,并优化了Spine 动画的底层逻辑。
解决方案
升级引擎版本
建议将项目升级至 3.8.7 或更高版本。新版本优化了 Spine 动画的事件监听机制,可避免重复触发问题。
临时修复方法(适用于 3.8.5)
若无法升级,可通过代码补丁临时修复:
在动画完成监听器中添加判断逻辑,确保同一帧内只触发一次事件。示例代码:
if (track.currentFrame == track.totalFrames) {
// 仅在最后一帧时移除监听器
track.removeEventListener(track.EVENT_COMPLETE);
}
此方法需手动管理监听器的生命周期,避免内存泄漏。
注意事项
该问题由 Spine 动画底层事件分发机制导致,非用户代码逻辑错误。
2025 年 4 月发布的 3.8.7 版本已包含稳定修复,建议优先升级。

