Одновременное преобразование множества файлов .fla в файлы .swf или .mov

У меня есть папка с множеством файлов FLA (files.fla).

Мне было интересно, есть ли способ конвертировать все эти файлы .fla в файлы .swf или .mov сразу (не открывая каждый файл fla в Adobe Animate, а затем экспортируя их в swf).

Мне также интересно, можно ли добиться этого с помощью скрипта Python или, возможно, кода JavaScript, выполняемого извне для Adobe Animate.

Если у кого-то есть какие-либо идеи или какие-либо ссылки, это было бы полезно.


person YYY    schedule 10.11.2019    source источник
comment
Кто что может мне посоветовать? Или кто-то, кто столкнулся с таким случаем?   -  person YYY    schedule 10.11.2019


Ответы (1)


Я нашел способ сделать это не извне.

Я публикую это в надежде, что это поможет кому-то еще, пытающемуся выяснить, как это сделать в самом программном обеспечении (Adobe Animate).

Вот фрагмент кода, который это делает (который не оптимизирован).

Кстати, действительно вдохновлен ответом на StackOverFlow (ссылку не помню).

var swfFolder = 'Path/to/SWF/Files'​
var flaFolder = fl.browseForFolderURL('Path/to/FLA/Files');​
var folderContents = FLfile.listFolder(flaFolder);

for(i = 0; i < folderContents.length; i++){​
​
   file = folderContents[i];​
   swfFilename = file.replace(".fla", ".swf");​
   file = 'Path/to/FLA/Files' + file;​
   fl.openDocument(file);​
   fl.getDocumentDOM().exportSWF(swfFolder + "/" + swfFilename, true);​
   fl.closeDocument(file);​

}​

У него есть некоторые проблемы. При первом запуске этого скрипта он откроет своего рода файл браузера, чтобы выбрать каталог, в котором расположены FLA-файлы. а затем нажимая ok для каждого файла.

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

var swfFolder = 'Path/to/SWF/Files';
var swfFilename = "exportedFile.swf";
fl.getDocumentDOM().exportSWF(swfFolder + "/" + swfFilename, true);​

Чтобы полностью ответить на мой вопрос (внешнее выполнение кода, который экспортирует FLA-файлы в SWF-файлы), мы должны выяснить, как выполнить этот скрипт из командной строки (cmd в Windows). Затем, чтобы расширить его до папки с множеством файлов.fla, мы можем написать небольшой код Python, который вызывает скрипт для каждого файла каталога FLA.

Однако я не нашел, как этого добиться. Так что если у кого-то есть ответ на этот вопрос, дайте нам знать.

ИЗМЕНИТЬ

Чтобы вызвать сценарий JSFL для файла FLA, используйте:

Path\To\Animate.exe file.fla Path\To\file.jsfl

(Ссылка на ссылка)

Когда мне пришлось сделать скрипт Python для этой цели, вся эта команда у меня не работала, мне пришлось сначала открыть Adobe Animate с моим fla-файлом, подождать несколько секунд (используя time.sleep()), а затем вызвать команду

Path\To\Animate.exe Path\To\file.jsfl

person YYY    schedule 18.11.2019