2008-11-04 3 views
9

В нашем проекте мы имеем большое количество (сотни) FLA-файлов, созданных художниками в CS3, из которых мы собираем SWF для использования в нашем приложении Flex/AS3.Возможно ли опубликовать FLA из командной строки?

В рамках упрощенной системы построения/развертывания было бы очень удобно автоматизировать публикацию всех этих FLA и, в идеале, развертывание SWF. Я нашел несколько способов сделать пакетную публикацию из CS3 с использованием JSFL, но был удивлен, обнаружив, что CS3, по-видимому, не имеет каких-либо функций командной строки для этого?

Это в системе Linux, для чего это стоит, у меня нет опыта работы с JSFL, чтобы узнать, как можно запускать скрипты из командной строки?

примечание: Я должен был сказать: «Linux предпочтительнее» ... Я не использую Linux, но наш сервер/сборщик ПК - это Linux ... Я не понимал, что CS3 несовместим, поэтому я думаю, мы может сделать эту часть в Windows.

ответ

2

Как вы работаете в системе Flash CS3 в Linux? вы не можете запустить JSFL из командной строки, но компиляция файла FLA должно быть возможным

некоторых старого пример http://www.mikechambers.com/blog/2003/11/01/flashcommand-flash-2004-command-line-compiler/

нового материала от Mike Chambers http://code.google.com/p/flashcommand/ для OSX

так что это, безусловно, возможно, кажется, только через пол автоматическая публикация IDE,

слишком плохой компилятор Flex не способен на такое, вместе с задачами ANT это убийца ... с редактором FDT t Hings довольно прохладно и автоматизированы

8

Выполнение скриптов JSFL из командной строки так же, как это:

на Windows: "c:\program files\macromedia\flash 8\flash.exe" myscript.jsfl

на Mac: open myscript.jsfl

Я считаю, что более старые версии Flash, побежал Вина не проблема, но не так, как в CS3.

Чтобы перебрать партию локальных файлов, попробовать что-то вроде этого (в JSFL):

var importFolder = fl.browseForFolderURL('Select a folder with existing FLA files'); 
var importFolderContents = FLfile.listFolder(importFolder); 
for (i = 0; i <importFolderContents.length; i++) { 
    file = importFolderContents[i]; 
    fl.openDocument(file); // and so on 
} 

И некоторые другие методы, которые вы, вероятно, хотите, чтобы исследовать это ..

fl.getDocumentDOM() document.exportSWF() document.publish() fl.closeDocument()

0

Да, абсолютно. Фактически, я создал комплексное решение, которое одним нажатием кнопки обновит файлы классов с отметкой времени версии, откройте Flash, если она еще не открыта, откройте отдельные файлы для публикации, сообщите программа автоматизации через межпроцессорную связь, когда каждый файл завершил публикацию, поэтому вы не сталкиваетесь с какими-либо проблемами времени и развертываете определенные файлы в Интернете после завершения (после автоматической резервной копии и отметки времени имен файлов) и весь процесс завершается менее чем за 10 секунд.

Смотрите мой Q & А здесь: Automating publishing of FLA files; calling Process.Start multiple times

0

Как уже было сказано, что это можно сделать с помощью скриптов JSFL, хотя вы все равно должны иметь инструмент командной строки, которая обменивается данными с Adobe Flash Professional, чтобы войти в процесс в stdout и предоставить код выхода на основе результата компиляции.

Я в конечном итоге написал этот инструмент самостоятельно https://www.npmjs.com/package/flc. Это в основном интерфейс командной строки, который абстрагирует Adobe Flash Professional. Протестировано против Flash Pro 2014 и 2015.