У меня есть большой спрайт-лист, и он не помещается в один спрайт-лист 2048. Поэтому я разделил его на 3 листа спрайтов (3 PNG, 2048x2048).
Но в моей игре он все равно должен играть как один цельный спрайт. Вот как я это делаю:
var sprite1 = new createjs.Sprite(ssheet1);
var sprite2 = new createjs.Sprite(ssheet2);
var sprite3 = new createjs.Sprite(ssheet3);
sprite1.on("animationend", sprite1_played);
sprite2.on("animationend", sprite2_played);
sprite3.on("animationend", sprite3_played);
stage.addChild(sprite1, sprite2, sprite3);
... cut here ...
function playSprite()
{
sprite1.visible = true;
sprite2.visible = false;
sprite3.visible = false;
sprite1.gotoAndPlay("ssh");
}
function sprite1_played()
{
sprite1.visible = false;
sprite2.visible = true;
sprite3.visible = false;
sprite2.gotoAndPlay("ssh");
}
function sprite2_played()
{
sprite1.visible = false;
sprite2.visible = false;
sprite3.visible = true;
sprite3.gotoAndPlay("ssh");
}
function sprite3_played()
{
sprite1.visible = true;
sprite2.visible = false;
sprite3.visible = false;
sprite1.gotoAndPlay("ssh");
}
Проблема в том, что когда я вызываю playSprite(), он начинает воспроизводить спрайт, состоящий из 3 разных спрайтов, и между воспроизведением спрайтов 1, 2, 3 (на мобильных устройствах) возникает заметная ЗАДЕРЖКА. Задержки исчезают на 2-м и всех последующих циклах.
Но задержки на первом цикле недопустимы и очень раздражают.
Есть ли у вас какие-либо идеи о том, как сделать так, чтобы все работало гладко с самого начала? Спасибо!