Objective c 如何获取脊椎当前动画

Objective c 如何获取脊椎当前动画,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,我在cocos2d中有一个简单的spine项目,我想知道当前正在播放的动画(字符串名称),但我在CCSkeletonAnimation类中找不到任何函数来获得它 你知道有没有办法做到这一点 谢谢 编辑-解决方案 嘿,我找到了怎么做的 AnimationState *a = [mAnimationNode getAnimationState:0]; NSLog(@"Layer touched: %s",a->animation->name); AnimationState *a

我在cocos2d中有一个简单的spine项目,我想知道当前正在播放的动画(字符串名称),但我在CCSkeletonAnimation类中找不到任何函数来获得它

你知道有没有办法做到这一点

谢谢

编辑-解决方案


嘿,我找到了怎么做的

AnimationState *a = [mAnimationNode getAnimationState:0];   
NSLog(@"Layer touched: %s",a->animation->name);
AnimationState *a = [mAnimationNode getAnimationState:0];   
NSLog(@"Layer touched: %s",a->animation->name);
其中mAnimationNode是一个CCSkeletonAnimation


那太好了

如果Spine不支持一种清晰的方式来执行此操作,则最好在启动动画时将动画名称存储在场景的属性中

另一方面,由于动画通常通过动作在cocos2d中实现,因此可以检查
CCActionManager
NumberOfRunningActionsTarget:
方法实现,以检查如何访问给定目标节点中的运行动作列表

这适用于cocos2d 1.1:

tHashElement *element = NULL;
HASH_FIND_INT(targets, &target, element);

element->actions
是包含所有运行操作的cArray。

嘿,我找到了如何使用它

AnimationState *a = [mAnimationNode getAnimationState:0];   
NSLog(@"Layer touched: %s",a->animation->name);
AnimationState *a = [mAnimationNode getAnimationState:0];   
NSLog(@"Layer touched: %s",a->animation->name);
其中mAnimationNode是一个CCSkeletonAnimation


那太好了

对于cocos2d-x:anim->getCurrent()->animation->name