CCActionInterval* CCAnimate::reverse(void) { CCMutableArray<CCSpriteFrame*> *pOldArray = m_pAnimation->getFrames(); CCMutableArray<CCSpriteFrame*> *pNewArray = new CCMutableArray<CCSpriteFrame*>(pOldArray->count()); if (pOldArray->count() > 0) { CCSpriteFrame *pElement; CCMutableArray<CCSpriteFrame*>::CCMutableArrayRevIterator iter; for (iter = pOldArray->rbegin(); iter != pOldArray->rend(); iter++) { pElement = *iter; if (! pElement) { break; } pNewArray->addObject((CCSpriteFrame*)(pElement->copy()->autorelease())); } } CCAnimation *pNewAnim = CCAnimation::animationWithFrames(pNewArray, m_pAnimation->getDelay()); pNewArray->release(); return CCAnimate::actionWithDuration(m_fDuration, pNewAnim, m_bRestoreOriginalFrame); }
CCActionInterval* CCAnimate::reverse(void) { CCArray *pOldArray = m_pAnimation->getFrames(); CCArray *pNewArray = new CCArray(pOldArray->count()); if (pOldArray->count() > 0) { CCSpriteFrame *pElement; //CCArray::CCMutableArrayRevIterator iter; //for (iter = pOldArray->rbegin(); iter != pOldArray->rend(); iter++) //{ // pElement = *iter; // if (! pElement) // { // break; // } // pNewArray->addObject((CCSpriteFrame*)(pElement->copy()->autorelease())); //} CCObject* pObj = NULL; CCARRAY_FOREACH(pOldArray, pObj) { pElement = (CCSpriteFrame *)pObj; if (! pElement) { break; } pNewArray->addObject((CCSpriteFrame*)(pElement->copy()->autorelease())); }