以前项目中曾经用到过,后来因为GIF图像的质量较差,被弃用了,把公司名字去掉分享下,根据网上资料改编的cocos2d-iphone版的。
// // CCSpriteGif.h // // Created by Yuming on 13-1-23. // Copyright 2013年 __MyCompanyName__. All rights reserved. // // 本类需要导入ImageIO.framework #import <Foundation/Foundation.h> #import "cocos2d.h" #import <ImageIO/ImageIO.h> @interface CCSpriteGif : CCSprite { CGImageSourceRef m_gifSourceRef; // gif动画 NSDictionary* m_gifProperties; // gif动画属性 unsigned int m_loopCount; // gif动画循环的总帧数 unsigned int m_startIndex; // gif动画播放开始的帧序号 float m_playTime; // gif播放总时间 } @property (nonatomic) float playTime; /** * @brief 通过播放次数初始化GIF动画 * * @param path GIF动画的文件路径 * @param count 播放次数 * @param interval 每帧播放的时间间隔 * @param delay 延时delay时间后开始播放 * @param startIndex 开始播放的帧索引,可以不从第一帧放 * * @return 同init */ - (id)initWithGifFile:(NSString*)path andPlayCount:(unsigned int)count andInterval:(float)interval andDelay:(ccTime)delay andStartIndex:(unsigned int)startIndex; /** * @brief 通过播放时间初始化GIF动画 * * @param path GIF动画的文件路径 * @param playTime 播放动画总时间 * @param interval 每帧播放的时间间隔 * @param delay 延时delay时间后开始播放 * @param startIndex 开始播放的帧索引,可以不从第一帧放 * * @return 同init */ - (id)initWithGifFile:(NSString*)path andPlayTime:(float)playTime andInterval:(float)interval andDelay:(ccTime)delay andStartIndex:(unsigned int)startIndex; /** * @brief 重新播放GIF动画 * * @param count 播放次数 * @param interval 每帧播放的时间间隔 * @param delay 延时delay时间后开始播放 * @param startIndex 开始播放的帧索引,可以不从第一帧放 */ - (void)replayGifCount:(unsigned int)count andInterval:(float)interval andDelay:(ccTime)delay andStartIndex:(unsigned int)startIndex; /** * @brief 停止GIF动画播放 */ - (void)stopGif; @end
点击下载:https://files.cnblogs.com/pure/CCSpriteGif.zip