一,使用Sprite制作动画
动画的制作原理据说是由于人的视觉残留效应,连续播放一系列的静止图片,即可获得一段动画,每张图片可以称作动画的一帧,可以参考Gif动画的原理。在EaselJS中,提供了一个Sprites类,可以用来创建动画。创建Sprite同创建其他EaselJS对象实例一样,只需要调用new createjs.Sprite(SpriteSheet);
很显然,需要使用SpriteSheet来创建Sprite,那么SpriteSheet又是什么呢?可以理解为一个运行动画所需要的数据集合,包含动画的原始图像(一般都是将动画的每一帧合并为一个大图),每一帧的尺寸数据,以及动画的帧数(每个动画的名称及包含那几个帧)。
如何来构造一个SpriteSheet呢?在EaselJS中,首先要创建一个用于创建的SpriteSheet的数据集合作为参数,包含定义Spritesheet所必须的信息,一般情况看起来是这样的:
var data = {
//动画所需要的图像路径
//可以是多个图片路径组成的列表
"images":[image.png],
//定义每一帧的数据,宽高等等,形成动画的每一帧
//有两种方法,如果所有的帧的尺寸相同,只需要统一定义
"frames":{width:, height:, count:, regX: , regY:}
//如果帧数据的尺寸不同,分别定义即可
frames: [
// x, y, width, height, imageIndex, regX, regY,这里的imageIndex对应“images”列表中的图片索引
[0,0,64,64,0,32,64],//frames0
],
//创建动画,动画的名字,以及对应"frames"列表中的哪些帧,也有两种方法
"animations":{
a1:[frame0,framen]}//a1动画从第一帧运行到第n帧
}
//也可以单独列出一个动画所需要的帧数
,同时定义动画完成后的动作,速度等等
animations: {
a2: {
frames: [1,,3,5,7],
next: "a1",//a2播放完成后进入a1
speed: 2//速度
}
以官方示例中第一个Demo1为例,首先它的图片看起来大体是这样的
有了这样的图片,就可以通过SpriteSheet来创建一个Sprite动画。
第一步,创建构造Spritesheet
先创建SpriteSheet的参数,