Я новичок в скворце, и это может звучать как вопрос новичка, но здесь ничего не происходит.

Представьте себе следующий сценарий (во Flash):

  • Видеоклип с названием test
  • Тест имеет 80 кадров
  • В тесте 4 метки по 20 кадров каждая.

Когда я пишу сценарий test в своем проекте. Я делаю петлю из метки 0-1 (кадры 1-19). Затем я приказываю ему зацикливаться на метке 2 при определенном событии.

Таким образом, я не добавляю и не удаляю фрагмент ролика и не создаю только один экземпляр.

Теперь, если подумать о том, чтобы реализовать это на скворце. Думаю сделать 4 видеоклипа во флеше. Экспортируйте их как листы спрайтов, а затем сделайте в сценарии четыре фрагмента ролика. Добавьте любой клип, который нужно задействовать в жонглере, и аналогичным образом удалите его в это время.

Таким образом, я добавляю накладные расходы на addchild и removechild каждый раз, когда хочу переключаться между этими анимациями. Это более рентабельный способ?

0
Fahim Akhter 15 Фев 2013 в 15:41
Вы можете оставить их на сцене, спрятать и убрать с жонглера вместо того, чтобы убирать со сцены. В следующий раз, когда они понадобятся, просто добавьте в жонглер и сделайте видимыми. Я предлагаю вам спросить об этом на форумах gamua, так как это во многом связано со скворцами, и вы также можете найти там большую помощь.
 – 
Adrian Pirvulescu
15 Фев 2013 в 16:50
Скрытые элементы по-прежнему съедают память. Я предпочитаю иметь все это в одном элементе. Так что мне никогда не придется беспокоиться о накладных расходах и множественных экземплярах.
 – 
Fahim Akhter
15 Фев 2013 в 16:58
Они действительно пожирают память ... но в вашем случае 4 видеоклипа не должны быть проблемой. Если мы говорим о 100 видеоклипах, то это очень много. Я думаю, что главная проблема не в памяти, а во времени, которое требуется для добавления / удаления со сцены. Попробуйте использовать бета-версию Adobe Scout и проверьте, что * отнимает у вас большую часть времени обработки.
 – 
Adrian Pirvulescu
15 Фев 2013 в 17:06
Я сказал 4 ради примера. Я, к сожалению, имею дело со 100 клипами :)
 – 
Fahim Akhter
15 Фев 2013 в 20:43

1 ответ

Лучший ответ

Я предполагаю, что вы хотите экспортировать один клип, но управлять несколькими (4 анимациями), а не одним клипом. Если это так, я написал несколько сценариев JSFL пару лет назад (когда CS6 еще не было для экспорта таблиц спрайтов), которые экспортировали основную временную шкалу документа .fla как последовательность изображений, но использовали метки кадров в имена файлов. Это упростило интеграцию с TexturePacker. Вы можете посмотреть видео об этом здесь.

Вот фрагмент JSFL, который будет экспортировать последовательность кадров с именами, созданными на основе меток кадров, которые должны упростить управление в TexturePacker:

var d   = (FLfile.getPlatform() == 'macos') ? '/' : '\\'; //delimiter
var doc = fl.getDocumentDOM();                            //document
var tl  = doc.getTimeline();tl.setSelectedLayers(0,true); //timeline
var cl = tl.layers[0];                                    //current layer
var numFrames = cl.frameCount;

var className = prompt("Name for your sequence", toClassName(doc.name.substr(0,doc.name.length-4)));
className = className.split('.')[0];//just in case the user adds .as
className = toClassName(className);//remove non alphabet chars
var docPath = doc.pathURI.substr(0,doc.pathURI.length - doc.name.length);
var exportPath = docPath+className+'_export'+d;
if(!FLfile.exists(exportPath)) FLfile.createFolder(exportPath);
fl.outputPanel.clear();
for(i = 0 ; i < numFrames; i++) {
    if(cl.frames[i].name != ''){//if frame is labelled
        tl.setSelectedFrames(i,i,true);
        doc.exportPNG(exportPath+cl.frames[i].name+lpad(''+i,4)+'.png',true,true);
    }
}
fl.trace("export complete!");
function lpad(number, length){
    var result = '' + number;
    while (result.length < length) result = '0' + result;
    return result;
}
function toClassName(input){
    return input.replace(/[^a-zA-Z]/g, "");
}

Также я предлагаю взглянуть на инструменты генератора, такие как Dynamic-Texture-Atlas-Generator , Fruitfly и т. д.

0
George Profenza 15 Фев 2013 в 19:51