diff --git a/spine-cocos2d-iphone/src/spine/CCSkeletonAnimation.m b/spine-cocos2d-iphone/src/spine/CCSkeletonAnimation.m index 4f9327ab3..072b4cf97 100644 --- a/spine-cocos2d-iphone/src/spine/CCSkeletonAnimation.m +++ b/spine-cocos2d-iphone/src/spine/CCSkeletonAnimation.m @@ -132,11 +132,21 @@ static void callback (AnimationState* state, int trackIndex, EventType type, Eve } - (TrackEntry*) setAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop { - return AnimationState_setAnimationByName(_state, trackIndex, [name UTF8String], loop); + Animation* animation = SkeletonData_findAnimation(_skeleton->data, [name UTF8String]); + if (!animation) { + CCLOG(@"Spine: Animation not found: %@", name); + return 0; + } + return AnimationState_setAnimation(_state, trackIndex, animation, loop); } - (TrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(int)delay { - return AnimationState_addAnimationByName(_state, trackIndex, [name UTF8String], loop, delay); + Animation* animation = SkeletonData_findAnimation(_skeleton->data, [name UTF8String]); + if (!animation) { + CCLOG(@"Spine: Animation not found: %@", name); + return 0; + } + return AnimationState_addAnimation(_state, trackIndex, animation, loop, delay); } - (TrackEntry*) getCurrentForTrack:(int)trackIndex { diff --git a/spine-cocos2dx/src/spine/CCSkeletonAnimation.cpp b/spine-cocos2dx/src/spine/CCSkeletonAnimation.cpp index 71d01b5b9..aff464a79 100644 --- a/spine-cocos2dx/src/spine/CCSkeletonAnimation.cpp +++ b/spine-cocos2dx/src/spine/CCSkeletonAnimation.cpp @@ -124,11 +124,21 @@ void CCSkeletonAnimation::setAnimationListener (CCObject* instance, SEL_Animatio } TrackEntry* CCSkeletonAnimation::setAnimation (int trackIndex, const char* name, bool loop) { - return AnimationState_setAnimationByName(state, trackIndex, name, loop); + Animation* animation = SkeletonData_findAnimation(skeleton->data, name); + if (!animation) { + CCLog("Spine: Animation not found: %s", name); + return 0; + } + return AnimationState_setAnimation(state, trackIndex, animation, loop); } TrackEntry* CCSkeletonAnimation::addAnimation (int trackIndex, const char* name, bool loop, float delay) { - return AnimationState_addAnimationByName(state, trackIndex, name, loop, delay); + Animation* animation = SkeletonData_findAnimation(skeleton->data, name); + if (!animation) { + CCLog("Spine: Animation not found: %s", name); + return 0; + } + return AnimationState_addAnimation(state, trackIndex, animation, loop, delay); } TrackEntry* CCSkeletonAnimation::getCurrent (int trackIndex) {