帧动画
来源:互联网 发布:淘宝开店认证无法拍照 编辑:程序博客网 时间:2024/05/17 21:53
动画是由一系列图片 切换产生的。 可以叫做一系列帧。
Animation 描述一个动画
Animate 动作,可以根据Animation 创建。
精灵是执行Animate 的。
Animation 有两种方式描述动画。
。一个一个图片添加。
auto animation = Animation::create(); for( int i=1;i<15;i++) { char szName[100] = {0}; sprintf(szName, "Images/grossini_dance_%02d.png", i); animation->addSpriteFrameWithFile(szName); } // should last 2.8 seconds. And there are 14 frames. animation->setDelayPerUnit(2.8f / 14.0f); animation->setRestoreOriginalFrame(true); auto action = Animate::create(animation); _grossini->runAction(Sequence::create(action, action->reverse(), nullptr));
。.通过plist文件初始化。
auto cache = AnimationCache::getInstance(); cache->addAnimationsWithFile("animations/animations-2.plist"); auto animation2 = cache->getAnimation("dance_1"); //plist文件中的 名字 auto action2 = Animate::create(animation2); _tamara->runAction(Sequence::create(action2, action2->reverse(), nullptr));
第二个例子 应用了精灵帧缓存 降低了资源消耗
1. static AnimationCache* getInstance(),全局共享的单例2. void addAnimation(Animation *animation, const std::string& name),添加一个动画到缓存3. void addAnimationsWithFile(const std::string& plist),添加动画文件到缓存4. void removeAnimation(const std::string& name),移除一个指定的动画5. Animation* getAnimation(const std::string& name),获得事先存入的动画
建议:在内存警告时我们应该加入如下的清理缓存操作:
- void releaseCaches()
- {
- AnimationCache::destroyInstance();
- SpriteFrameCache::getInstance()->removeUnusedSpriteFrames();
- TextureCache::getInstance()->removeUnuserdTextures();
- }
值得注意的是清理的顺序,我们推荐先清理动画缓存,然后清理精灵帧缓存,最后是纹理缓存。按照引用层级由高到低,以保证释放引用有效。
0 0
- 动画__帧动画
- 转场动画 帧动画
- 动画 AnimationDrawable 帧动画
- 动画----帧动画
- 安卓补间动画、帧动画
- Android动画-帧动画
- Android动画--帧动画
- egret_gif动画(帧动画)
- android动画 -- 帧动画 补间动画
- 属性动画,补间动画,帧动画
- View动画、帧动画、属性动画
- Android动画-帧动画&补间动画
- Android加载动画 旋转动画 、帧动画
- 帧动画、补间动画、属性动画
- 动画(过渡动画、关键帧动画)
- Android动画-帧动画-属性动画
- 帧动画&补间动画&属性动画
- 安卓 动画帧动画基础动画
- 一个问题的思考
- 【CSS样式】:所有样式属性
- Foundation框架(二)
- SQLITE3 使用总结
- 齐次坐标
- 帧动画
- uploadify在360极速模式,ie8,火狐浏览器出现302错误
- javascript DOM笔记
- Android桌面悬浮窗效果实现.PS:判断当前界面是桌面。获得属于桌面的应用的应用包名称。
- linux erlang yaws 安装
- Storyboard、Nib文件和代码来实现UI的利与弊
- “Ceph浅析”系列之四——Ceph的结构
- 用Scala语言轻松开发多线程、分布式以及集群式程序
- 网页程序开机启动并自动全屏