class CCAnimationFrame : public CCObject
{
    CCAnimationFrame();
    ~CCAnimationFrame();

    bool initWithSpriteFrame(CCSpriteFrame* spriteFrame, float delayUnits, CCDictionary* userInfo);

    CCSpriteFrame* getSpriteFrame();
    void setSpriteFrame(CCSpriteFrame* pSpFrame);

    float getDelayUnits();
    void setDelayUnits(float fDelayUnits);

    CCDictionary*  getUserInfo();
    void setUserInfo(CCDictionary* pDict);
};


class CCAnimation : public CCObject
{
    static CCAnimation* create(CCArray *arrayOfAnimationFrameNames, float delayPerUnit, unsigned int loops);
    static CCAnimation* create(void);
    static CCAnimation* createWithSpriteFrames(CCArray* arrayOfSpriteFrameNames, float delay);
    static CCAnimation* createWithSpriteFrames(CCArray* arrayOfSpriteFrameNames);

    void addSpriteFrame(CCSpriteFrame *pFrame);
    void addSpriteFrameWithFileName(const char *pszFileName);
    void addSpriteFrameWithTexture(CCTexture2D* pobTexture, const CCRect& rect);

    float getTotalDelayUnits();

    float getDelayPerUnit();
    void setDelayPerUnit(float fDelayPerUnits);

    float getDuration();

	CCAnimation* copy();

    CCArray* getFrames();
    void setFrames(CCArray* pFrames);


    bool getRestoreOriginalFrame();
    void setRestoreOriginalFrame(bool bRestoreFrame);

    unsigned int getLoops();
    void setLoops(unsigned int uLoops);
};