I play some UI Animation
ActionManager::shareManager()->playActionByName(MAIN_UI_ANI_JSON_FILE,eventName.c_str(), CCCallFunc::create(this, callfunc_selector(MyLayer::MyCallBack)) );
and… the callback function MyCallBack calling forever…whatever loop on or off.
because i Hide some EffectLayer for Hide Effect in callback function .
i can’t see my UIAnimation anymore. because the Callback continusly Hide EffectLayer…
anyway i solve this problem by edit below code.
void ActionObject::simulationActionUpdate(float dt)
{
bool isEnd = true;
int nodeNum = m_ActionNodeList->count();
for ( int i = 0; i < nodeNum; i++ )
{
ActionNode* actionNode = (ActionNode*)m_ActionNodeList->objectAtIndex(i);
if (actionNode->isActionDoneOnce() == false)
{
isEnd = false;
break;
}
}
if (isEnd)
{
if (m_CallBack != NULL)
{
m_CallBack->execute();
}
// added
if (m_loop)
{
this->play();
} else {
if(m_CallBack) {
m_CallBack->release();
m_CallBack = NULL;
}
}
// end of added
}
}