Проблема: у меня есть длительная анимация на основе кадров, для которой я создал много таблиц спрайтов (например, 50 листов спрайтов с 10 изображениями в каждом - 2 МБ на таблицу спрайтов).Требуется заметное время (и память) для предварительной загрузки всех 50 таблиц спрайтов, прежде чем анимация может быть воспроизведена с использованием кода, основанного на приведенном ниже фрагменте кода (это рекомендуется в документах Corona):
local function spriteListener( event )
thisSprite = event.target -- "event.target" references the sprite
if ( event.phase == "ended" ) then
sequenceNumer = sequenceNumer + 1;
if (sequenceNumer <=10) then
thisSprite:setSequence(filenameArray[sequenceNumer])
thisSprite:play()
end
end
end
local spriteWidth = 551
local spriteHeight = 401
local numFrames1 = 15
local startFrame = 1
frameInfoSet1 = {width = spriteWidth , height = spriteHeight, numFrames = numFrames1}
filenameArray = {"001-015","016-030","031-045","046-060","061-075","076-090","091-105","106-120","121-135","136-150"}
fullSequence =
{
{name=filenameArray[1], sheet=graphics.newImageSheet("spritesheets/" .. filenameArray[1] .. ".png", frameInfoSet1), start = startFrame, count=numFrames1, time=2250, loopCount=1},
{name=filenameArray[2], sheet=graphics.newImageSheet("spritesheets/" .. filenameArray[2] .. ".png", frameInfoSet1), start = startFrame, count=numFrames1, time=2250, loopCount=1},
{name=filenameArray[3], sheet=graphics.newImageSheet("spritesheets/" .. filenameArray[3] .. ".png", frameInfoSet1), start = startFrame, count=numFrames1, time=2250, loopCount=1},
-- more such spritesheets are loaded further...
}
firstSpriteSheet = fullSequence[1]["sheet"]
sequenceNumer = 1
tt = display.newSprite (firstSpriteSheet, fullSequence)
tt.x = display.contentWidth/2 ; tt.y = display.contentHeight/2
tt:addEventListener( "sprite", spriteListener )
tt:play()
ОднакоТо, что я хотел бы достичь, это «потоковая» версия этой техники.т. е. я загружу только 3 спрайт-листа из общего числа 50, поэтому для начала воспроизведения анимации требуется, скажем, 6 МБ, и продолжать загружать дополнительные спрайт-листы, поскольку уже загруженные продолжают играть.Итак, чтобы проиллюстрировать далее, я загружаю листы 1, 2, 3 и начинаю воспроизведение анимации, и загрузка листа 4 по расписанию 1 заканчивается, загрузка листа 5 по расписанию 2 заканчивается и так далее.
Любой совет приветствуется!Заранее спасибо.