Egret的帧动画的使用

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

对于习惯了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
原创粉丝点击