mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
Don't crash if animation is not found.
http://www.esotericsoftware.com/forum/viewtopic.php?f=7&t=1379
This commit is contained in:
parent
961a93719c
commit
1d8e12442e
@ -132,11 +132,21 @@ static void callback (AnimationState* state, int trackIndex, EventType type, Eve
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (TrackEntry*) setAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop {
|
- (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 {
|
- (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 {
|
- (TrackEntry*) getCurrentForTrack:(int)trackIndex {
|
||||||
|
|||||||
@ -124,11 +124,21 @@ void CCSkeletonAnimation::setAnimationListener (CCObject* instance, SEL_Animatio
|
|||||||
}
|
}
|
||||||
|
|
||||||
TrackEntry* CCSkeletonAnimation::setAnimation (int trackIndex, const char* name, bool loop) {
|
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) {
|
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) {
|
TrackEntry* CCSkeletonAnimation::getCurrent (int trackIndex) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user