【发布时间】:2014-08-21 09:03:06
【问题描述】:
如何在 EaselJS 中缓存 SpriteSheets?我有一个 Sprite 对象,当我使用 user.hero.cache(0, 0, 30, 40); 时,它会停止播放动画(可能是因为我只是在缓存当前帧,而不是整个 SpriteSheet 图像)。那么如何缓存呢?
这是我的相关 EaselJS 代码:
data = {
images: ["Graphics/hero.png"],
frames: {
width: 30,
height: 40
},
animations: {
stand: 0,
run: [1, 2, "runLoop", 0.15],
runLoop: [3, 7, true, 0.15],
jump: [8, 10, "happy", 0.5],
happy: 11,
fall: 12,
stopFalling: [13, 14, "stand", 0.2],
almostFalling: [16, 19, true, 0.1]
}
};
user.hero.spriteSheet = new createjs.SpriteSheet(data);
user.hero = new createjs.Sprite(user.hero.spriteSheet, "stand");
user.hero.name = "hero";
user.hero.x = user.hero.safeX = 40 * 3;
user.hero.y = user.hero.safeY = 0;
user.hero.offset = 4;
user.hero.regX = user.hero.offset + 2;
user.hero.regY = user.hero.offset;
user.hero.width = 30 - (user.hero.offset * 2) - 10;
user.hero.height = 40 - (user.hero.offset * 2);
user.hero.xvel = user.hero.yvel = 0;
user.hero.cache(0, 0, 30, 40); // <--- This is the problem.
movableObjContainer.addChild(user.hero);
movableObj.push(user.hero);
无缓存:
带缓存:
我也尝试过缓存data.image 或user.hero.spriteSheet,但没有成功。
有没有办法在不影响动画的情况下缓存 SpriteSheet?
【问题讨论】:
标签: javascript caching html5-canvas easeljs sprite-sheet