Я новичок в скворце, и это может звучать как вопрос новичка, но здесь ничего не происходит.
Представьте себе следующий сценарий (во Flash):
- Видеоклип с названием test
- Тест имеет 80 кадров
- В тесте 4 метки по 20 кадров каждая.
Когда я пишу сценарий test в своем проекте. Я делаю петлю из метки 0-1 (кадры 1-19). Затем я приказываю ему зацикливаться на метке 2 при определенном событии.
Таким образом, я не добавляю и не удаляю фрагмент ролика и не создаю только один экземпляр.
Теперь, если подумать о том, чтобы реализовать это на скворце. Думаю сделать 4 видеоклипа во флеше. Экспортируйте их как листы спрайтов, а затем сделайте в сценарии четыре фрагмента ролика. Добавьте любой клип, который нужно задействовать в жонглере, и аналогичным образом удалите его в это время.
Таким образом, я добавляю накладные расходы на addchild и removechild каждый раз, когда хочу переключаться между этими анимациями. Это более рентабельный способ?
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 и т. д.
Похожие вопросы
Новые вопросы
actionscript-3
ActionScript 3 (AS3) - это язык объектно-ориентированного программирования (ООП) с открытым исходным кодом для платформ Adobe Flash и AIR. AS3 широко используется для RIA, мобильных приложений и настольных приложений. (ActionScript 3 является диалектом ECMAScript.)