Egret的帧动画的使用

来源:互联网 发布:淘宝优惠微信群 编辑:程序博客网 时间:2024/06/05 20:38

对于习惯了cocos引擎的小伙伴,对于白鹭的帧动画我想应该会不是很容易理解。在cocos中假如我们需要添加一个动画,只需要准备好plist文件,在程序中利用for循环给plist文件中的资源添加到动画缓存池中,在需要的地方调用这个动画缓存池取出里面的动画。在一个精灵的节点上添加这个动画效果就可以了。具体代码如下。

cc.spriteFrameCache.addSpriteFrames(res.explosion);     //加载plist文件        var mExplodeFrames = [];        for (var i=1;i<17;i++)        {            var frame = cc.spriteFrameCache.getSpriteFrame("explosion_"+("00"+i).slice(-2)+".png");            mExplodeFrames.push(frame);        }        var animation = new cc.Animation(mExplodeFrames, 0.04);        cc.animationCache.addAnimation(animation, "Explosion");        this.action = cc.animationCache.getAnimation("Explosion")

添加使用

var data = event.getUserData()        var sp = new cc.Sprite()        sp.setPosition(data)        this.addChild(sp)        sp.runAction(cc.sequence(cc.animate(this.action), cc.fadeOut(0.5)))

而在白鹭引擎中假如你创建项目的时候创建的是EUI项目,而不是game项目,那么就不能使用白鹭引擎中的MovieClip动画资源,所以如果不是game项目的时候就必须导入第三方库。加入第三方库的方法就是在创建好一个白鹭的项目之后在项目文件夹下有一个egretProperties.json文件,打开这个配置文件,在modules 下面添加需要添加的第三方库,目前Egret官方库分为8个模块分别为:

egret 必备的核心库game 制作游戏会用到的类库,比如 MovieClip,URLLoader 等res 资源加载库,所有涉及资源载入的工作,都可以通过这个模块来完成tween 动画缓动类dragonbones 龙骨动画库,用来制作一些复杂的动画效果socket 用来通讯的 WebSocket 库gui 老版本的 UI 库eui 新增的 UI 库,使用起来更加的方便

所有我们需要使用MovieClip就必须添加game库,在添加了game库之后就需要制作一个MovieClip,默认为一个json和png,这时就需要使用Egret的TextureMerger工具,这个工具在白鹭引擎中可以直接下载,打开软件之后直接点击第一个Egret MovieClip,进去之后可以使用GIF图片,也可以自己添加帧序列图片,自己创建动画,
这里写图片描述
然后右击点击创建动作
这里写图片描述
这个名称是非常重要的 因为等下导出之后会得到一个json文件和png文件,当我们需要使用这个动画的时候就必需用到这个动作的名字,等下面程序的地方会提到。
接下来就是给需要的序列帧的图片拖到动作中,右击动作名有一个添加帧个需要的所有动作图片拖进来。
这里写图片描述

TextureMerger 按照 MovieClip 生成资源时,结果为一个 json + png 文件对,主文件名相同。这样一对文件以下称为 MC 资源合集。比如,我们生成的资源主文件名为 abc ,那么在Egret的资源配置文件(默认为 default.res.json中,应该有如下配置:

"resources":    [         {"name":"abc.json","type":"json","url":"assets/abc.json"}        ,{"name":"abc.png","type":"image","url":"assets/abc.png"}        ......    ]

首先要给得到的两个文件添加到MovieClip 工厂类中

var data = RES.getRes("abc.json");var txtr = RES.getRes("abc.png");var mcFactory:egret.MovieClipDataFactory = new egret.MovieClipDataFactory( data, txtr );

现在就要用到前面说到的动作名称了,则在程序中解析该 MovieClip 的方法为:
var mc1:egret.MovieClip = new egret.MovieClip( mcFactory.generateMovieClipData( “stand” ) );
现在需要给动画添加到舞台上面,假如是直接添加到舞台则并不会存在动作,需要播放动画,假如在制作动画的过程中存在帧标签,则我们可以使用帧标签进行播放 就从帧标签开始播放。

this.addChild( mc1 );mc1.gotoAndPlay( "start" ,3);

假如没有帧标签,那么久只能写

mc1.gotoAndPlay(1,3)mc1.gotoAndPlay(1,-1)

上面的代码就是说从第一帧开始播放,假如第二个参数数正数,那么就直接播放三次,假如第二个参数为负数,那么就会无限循环。

以上就是我对白鹭引擎中动画的一些理解,如果有什么问题希望提出宝贵意见,大家共同学习。

未完待续。。。。。。。。。。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七个月宝宝感冒流鼻涕咳嗽怎么办 孩子握笔姿势不正确怎么办 走久了脚底板痛怎么办 不会给宝宝拍嗝怎么办 打了肉毒素淤青怎么办 新生儿一吃母乳就睡觉怎么办 10岁半宝宝缺钾怎么办 宝宝吃不到乳晕怎么办 喂母乳乳头破了怎么办 宝宝吸了乳头痛怎么办 喂母乳奶头很疼怎么办 孩子吸的乳头痛怎么办 新生儿一直睡觉不吸吮怎么办 新生儿光睡觉不吃奶怎么办 婴儿不吸母亲的奶怎么办 肾里有结石一直不掉下来怎么办 宝宝拍不出来嗝怎么办 未满月宝宝溢奶怎么办 吃母乳老是吐奶怎么办 宝宝吃母乳吐奶怎么办 新生儿三天没大便了怎么办 奶水多宝宝呛奶怎么办 婴儿的含乳姿势不正确怎么办 一个月竖着抱了怎么办 乳头被婴儿吸痛怎么办 婴儿从鼻孔吐奶怎么办 宝宝习惯含着乳头睡觉怎么办? 宝宝习惯奶瓶不吃乳头怎么办 婴儿从鼻子吐奶怎么办 宝宝从鼻孔出奶怎么办 一个月婴儿溢奶怎么办 刚出生婴儿溢奶怎么办 宝宝含不住乳晕怎么办 宝宝含不了乳晕怎么办 宝宝溢奶一直哭怎么办 宝宝倒奶很多次怎么办 宝宝吃了润肤乳怎么办 奶瓶很难吸出奶怎么办 2个月宝宝奶睡怎么办 孕四个月轻度缺碘怎么办 宝宝吃了奶粉呕吐怎么办