<pre name="code" class="cpp">ArmatureDataManager::getInstance()->addArmatureFileInfo("AnimationTest/AnimationTest.ExportJson");
Armature* arm = Armature::create("AnimationTest");
arm->setPosition(200, 200);
this->addChild(arm);
arm->getAnimation()->setMovementEventCallFunc([=](Armature* arm, MovementEventType type, const std::string& id){
if (type == MovementEventType::START)
{
if (strcmp(id.c_str(),"walk") == 0)
{
CCLOG("START:%s-------", id.c_str());
//可以再这里面转换其他的动作操作,如果达到一定的条件让他停止,
//并设置目前的状态是停止即可,就会调用else if
}
else if (strcmp(id.c_str(), "stop") == 0)
{
}
}
else if (type == MovementEventType::COMPLETE)
{
CCLOG("COMPLETE:%s------------", id.c_str());
arm->getAnimation()->play("jump");
}
});
arm->getAnimation()->play("Animation1");
动画回调函数是每帧都会调用一次。
setMovementEventCallFunc 函数的三个参数,分别是: 要执行的Armature对象, <pre name="code" class="cpp"> MovementEventType 有三种类型 START,COMPLETE,LOOP_COMPLETE,
id,所代表的就是你要执行的动画名称,你就可以通过id 是否等于你的执行cocostudio中的那个名字,如果满足条件就可以操作接着操作,如上例所示。
只是简单结束一下使用,如果不对请指出。