bool CSpriteObject::changeState(const string& s, CComponentParameter* parameter, bool force) { if (!CVisibleObject::changeState(s, parameter, force)) { return false; } if (s.empty()) { getInnerSprite()->stopAllActions(); } else { if (getCCBReader()) { CCBAnimationManager* am = getCCBReader()->getAnimationManager(); CCArray* seq = am->getSequences(); CCObject* pObj; CCARRAY_FOREACH(seq, pObj) { CCBSequence *seq = (CCBSequence*)pObj; if (s.compare(seq->getName()) == 0) { am->runAnimations(seq->getSequenceId(), 0); } } // getCCBReader()->getAnimationManager()->runAnimations(s.c_str()); } }