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());
        }
    }
Exemple #2
0
bool TFSpriteObject::changeState(const string& s)
{
    if (!TFVisibleObject::changeState(s))
    {
        return false;
    }
    
    if (s.empty())
    {
        getInnerSprite()->stopAllActions();
    }
    else
    {
        if (getCCBReader())
        {
            getCCBReader()->getAnimationManager()->runAnimations(s.c_str());
        }
    }
    
    return true;
}
void CSpriteObject::clearThis()
{
    CCBReader* pCCBReader = getCCBReader();
    if (pCCBReader)
    {
        pCCBReader->getAnimationManager()->setDelegate(NULL);
    }
    setCCBReader(NULL);
    setActionDelegate(NULL);
    
    if (pSprite_ != NULL)
    {
        pSprite_->removeFromParentAndCleanup(true);
        setInnerSprite(NULL);
    }
}