好的,我会稍微扩展一下我的评论。
当你在 EaselJS 中创建一个显示元素时,你给它一个源图像:
srcImage = new Image();
srcImage.src = "http://whatever.com/image.png";
...
sprite1 = new Bitmap(srcImage);
默认情况下,Bitmap 的实例是整个图像。但是,您可以将位图精确定位到该图像的某个区域。例如,假设图像包含一行 32x32 的图块:
sprites = [];
for(i=0; i<8; i++) {
sprites[i] = new Bitmap(srcImage);
sprites[i].sourceRect = { x:i*32, y:0, width:32, height:32 };
}
您现在有八个精灵,每个精灵都指向源图像的不同 32x32 区域。
您还可以动态更改它:
sprCursor = new Bitmap(srcImage);
sprCursor.sourceRect = ( x:0, y:0, width:32, height:32 };
...
if(cursorOverButton) {
sprCursor.sourceRect = { x:32, y:0, width:32, height:32 };
// or more efficiently, sprCursor.sourceRect.x = 32;
}
我想这就是 EaselJS 在幕后处理动画精灵的方式。