通过使用打包纹理工具,发布成功了.png和.plist文件。使用非常简单方便。本节课是用通过打包好的plist文件,一次性读取,减少io,实现高效率.用cc.SpriteFrameCache实现添加动画帧,然后循环遍历,并添加到数组中。然后获取每帧的name。最后通过一个空sprite来runaction这个动画。具体代码如下:
var HelloWorldLayer = cc.Layer.extend({
sprite:null,
ctor:function () {
this._super();
//一次加载纹理图片和解析所有的帧
cc.spriteFrameCache.addSpriteFrames(res.npc_plist);
//根据帧缓存来创建sprite
var sp=new cc.Sprite(cc.spriteFrameCache.getSpriteFrame("kick07.png"));
this.addChild(sp);
sp.setPosition(200,200);
//使用帧缓存创建动画
var frames=[];
for(var n=1;n<10;n++)
{
var sf=cc.spriteFrameCache.getSpriteFrame("kick0"+n+".png");
frames.push(sf);
}
var animation=new cc.Animation(frames,0.2);
var animate=new cc.animate(animation);
if(this.sprite==null){
this.sprite = new cc.SpriteBatchNode("res/npc.png",1);
this.addChild(this.sprite);
}
var sprite2 = new cc.Sprite(this.sprite.texture,cc.rect(0,0));
this.sprite.addChild(sprite2);
sprite2.setPosition(350,200);
sprite2.runAction(animate.repeatForever());
return true;
}
});
var HelloWorldScene = cc.Scene.extend({
onEnter:function () {
this._super();
var layer = new HelloWorldLayer();
this.addChild(layer);
}
});
最后附上作业链接:
http://www.cocoscvp.com/usercode/2016_04_30/d605366af01914a3c45e956b6b372101789055cb/