【已解决】短动画结束监听3.0b

我用动画编辑器做了段攻击动画,导入场景代码:armature0已添加为成员变量。
cocostudio::ArmatureDataManager::getInstance()->addArmatureFileInfo(
“attack/attack0.png”,“attack/attack0.plist”,“attack/attack.ExportJson”);
armature0 = cocostudio::Armature::create(“attack”);
armature0->setPosition(240,160);
this->addChild(armature0);
想用按钮控制这段动画播放:
void GameScene::playerAttackCallBack(Object *pSender,TouchEventType type)
{
if(type == TOUCH_EVENT_ENDED){
armature0->getAnimation()->play(“Animation2”);
}
}
这里我想让这个动画在播放的时候不能响应按键,我想用
this->settouchEnable(false);和this->settouchEnable(true);
来控制是否响应按键。
但是我要怎么监听上一次动画什么时候播放完以添加this->settouchEnable(true);呢?
--------------------------------------------------解决--------------------------------------------------------------
.h中加入:
void playerAttavckEndCallBack(Armature *armature, MovementEventType movementType, const std::string& movementID);//加入回调方法

bool isAttacking;//加入判断是否在播放动画的标示符

.cpp中加入:
isAttacking = false;

armature0->getAnimation()->setMovementEventCallFunc(this,movementEvent_selector(GameScene::playerAttavckEndCallBack));//在结束播放armature0里的动画后回调的方法

void GameScene::playerAttackCallBack(Object *pSender,TouchEventType type)//按键回调方法。
{
if (!isAttacking)
{
if(type == TOUCH_EVENT_ENDED){
isAttacking = true;
armature0->getAnimation()->play(“Animation2”);
}
}
}

void GameScene::playerAttavckEndCallBack(Armature *armature, MovementEventType movementType, const std::string& movementID)//动画播放回调方法
{
if (movementType == COMPLETE)//如果动画播放状态是结束
{
isAttacking = false;//将标志位重置
}
}

在播放的最后一帧添加“帧事件”属性,然后通过armature->getAnimation()->setFrameEventCallFunc()函数设置监听试试

我发现除了setFrameEventCallFunc()以外还有一个setMovementEventCallFunc()
我知道这两个方法都是要调用一个自定义的函数,函数中包含各种参数。
但是具体应该怎么做,能不能发个代码来让我学习一下?
比如我在.h中添加了一个方法如下:
void playerAttavckEndCallBack(Armature *armature, MovementEventType movementType, const std::string& movementID);
在.cpp中添加:
1.
armature0->getAnimation()->setMovementEventCallFunc(GameScene::playerAttavckEndCallBack);

2.
void GameScene::playerAttavckEndCallBack(Armature *armature, MovementEventType movementType, const std::string& movementID)
{
}
编译后1报错:函数调用缺少参数列表,请使用GameScene::playerAttavckEndCallBack创建指向成员的指针。
这里面的const std::string& movementID是干嘛用的?然后那个armature是干嘛用的?我是否需要设置这个armature为armature0?还是说在1那行代码里就已经设定好了?