cocos2d 播放GIF动画类

cocos2d 播放GIF动画类

以前项目中曾经用到过,后来因为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
时间: 2024-10-17 19:11:21

cocos2d 播放GIF动画类的相关文章

android 拓展ImageView播放GIF动画

原生Android控件ImageView并不能支持播放GiF格式的图片.如果将一张GIF的图片放入ImageView中,它只会显示图片的第一帧,不会产生任何动画效果. Android中播放GIF动画实现方法还是用多种的,最常用的就是使用   Frame动画, 但局限性较多,所以下面用一种拓展的ImageView实现效果. 1.要用到自定义控件,就要使用自定义控件的属性,因此需要在values下新建一个attrs.xml,可以为这个文件中添加任何需要自定义的属性. 这里只需要一个auto_play

【v2.x OGE-example 第三节 播放精灵动画】

1. 位置:Drawing_example --> SpriteAnimated 2. 类名:SpriteAnimated 3.利用AnimatedSprite动画精灵类能够实现多种多种动作. 比如: (1).播放精灵动画,指定播放速度: (2).播放特定帧,指定特定每一帧的帧速,能够实现慢放,快进,跳帧.倒放等. (3).能够循环播放,也能够仅仅播放一次,也能够指定播放次数: (4).增加监听器.全然掌握动画的播放状态,開始?结束?播到第几帧?是否播放完?循环了几次: 4.一下是Animate

Unity3D中播放序列帧动画

[狗刨学习网] class FrameAnimation { private float fps = 10.0f; private Rect drawPos; private float time = 0; private int currentIndex = 0; public void DrawFrameAnimation(Texture[] frameTex) { int length = frameTex.Length; GUI.DrawTexture(drawPos, frameTex

能够播放gif动画的ImageView

一般ImageView并不能播放gif动画. 此处播放gif动画的核心是: 1.将gif中的每一帧拿出来,然后使用Movie类的setTime()和draw()这两个方法来实时的画界面. 2.在ondraw中来处理这些绘制操作.进行逻辑推断,是否自己主动播放,假设不是自己主动播放的话就须要绘制一个開始button,同事设置画面定位到gif动画的第一帧 其它在代码中查看.主要类GifImageView.java凝视比較全.应该看懂问题不大. 注意的是,须要values目录下创建attrs,由于须要

Qt Quick播放Gif动画

Qt Quick提供了一个类 AnimatedImage ,可以播放 Gif 动画,使用简单,这里是一个示例. 这里是用到的 Gif 图片: AnimatedImage AnimatedImage 提供了五个属性: currentFrame,指示当前正在播放的帧序号 frameCount,指示图片的总帧数 paused,表示是否暂停,设置它也可以暂停或继续播放 playing,指示动画是否在播放,默认为 true ,意思是 AnimatedImage 对象创建后立即开始播放 source,类型为

播放Armature动画

如果cocos2d工程里想用到美工给过来的ExportJson动画:(我使用的是cocos2d-x-3.3) #include <cocostudio/CocoStudio.h> using namespace cocostudio; ArmatureDataManager::getInstance()->addArmatureFileInfo( "这里填写动画所在路劲.ExportJson" ); Armature * fiveStep = Armature::cr

可以播放gif动画的ImageView

一般ImageView并不能播放gif动画. 此处播放gif动画的核心是: 1.将gif中的每一帧拿出来,然后使用Movie类的setTime()和draw()这两个方法来实时的画界面. 2.在ondraw中来处理这些绘制操作.进行逻辑判断,是否自动播放,如果不是自动播放的话就需要绘制一个开始按钮,同事设置画面定位到gif动画的第一帧 其他在代码中查看,主要类GifImageView.java注释比较全,应该看懂问题不大. 注意的是,需要values文件夹下创建attrs,因为需要自定义属性au

扩展 WPF 动画类

原文:扩展 WPF 动画类 扩展 WPF 动画类                                                                     Charles Petzold                                                                     http://msdn.microsoft.com/msdnmag/issues/07/07/Foundations/Default.aspx?l

动画类型和时间指南(动画类结构图)

Core Animation 提供了一套非常科学的动画类,我们能够在程序中使用. CAAnimation 是所以动画类的虚基类.它遵循CAMediaTiming 协议,CAMediaTiming 协议为动画提供了简单的持续时间(duration).数度(speed).重复次数(repeat count).CAAnimation 还遵循了CAAction 协议,这个协议提供了标准化的定义在响应层(layer)触发动作时开启动画. CAAnimation 也定义了动画计时作为CAMediaTimin