Могу ли я вызвать внешний скрипт или программу при создании SWF-файла во Flash CS3?
-
09-06-2019 - |
Вопрос
Есть ли способ вызывать внешний скрипт или программу из Flash CS3 каждый раз, когда он создает SWF-файл?Я хотел бы добавить информацию о subversion, используя subwcrev - ключевые слова SVN не работают, потому что они обновляются только при обновлении файла класса версии.
Решение
Я не уверен, каковы возможности JSFL в наши дни, но я бы сказал, что внутренняя среда разработки Flash IDE - ваш единственный выбор.JSFL - это язык для расширения среды разработки Flash IDE, но я не уверен, что вы сможете это сделать.
В связи с этим следует отметить, что добавление информации SVN в ваши SWFS-файлы не является тривиальным.Вероятно, вам понадобятся перехватчики SVN для размещения информации до того, как фактически компилируется сам SWF.
Я сомневаюсь, что вы сможете выполнить эту компиляцию с помощью Flash IDE, но я был бы более чем рад услышать обратное.
Другие советы
Благодаря Zárate, похоже, что JSFL - это ответ или, по крайней мере, его часть.Я не могу заставить flash запускать внешние скрипты, но я может получите внешние скрипты для запуска flash;итак, теперь у меня есть два сценария;сборка.bat и build.jsfl
build.летучая мышь:
subwcrev . Version.svn.as Version.as
IF ERRORLEVEL 1 EXIT /B $ErrLev
flash.exe ./build.jsfl
IF ERRORLEVEL 1 EXIT /B $ErrLev
сборка.jsfl:
fl.openDocument("file:///movie.fla");
var documentDom = fl.getDocumentDOM();
documentDom.exportSWF("file:///movie.swf",true);
documentDom.close(false);
FLfile.remove("file:///Version.as");
Я добавил build.bat в свой проект;если я дважды щелкну по build.bat, проект создаст SWF-ролик с информацией о версии SVN.Это работает из среды разработки Flash IDE или из проводника файлов.Если я забуду и нажму "тестовый проект", то сборка завершится неудачно, потому что она не может найти Version.as.
Еще раз спасибо, Зарате!
уменьши то, что я делаю пусть это наполнит нас, потому что ты тоже
var fileURL = fl.browseForFileURL("открыть", "Выбрать файл");
fl.OpenDocument(fileURL);
var documentDom = fl.getDocumentDOM();
documentDom.exportSWF("movie.swf", true);
documentDom.close(ложь);