#java #javascript #after-effects
#java #javascript #after-effects
Вопрос:
При передаче JavaScript myScript.jsx
в After Effects я хочу, чтобы After Effects завершал работу по завершении:
«C:Program FilesAdobeAdobe After Effects CCФайлы поддержки AfterFX» -r «C:WorkspacesMyAEScriptsmyScript.jsx »
Итак, самая последняя строка в переданном скрипте JavaScript MyScript.jsx:
app.quit();
Независимо от этой команды After Effects просто не хочет завершать работу. Я попытался включить
app.exitAfterLaunchAndEval=true;
но это не помогло.
Если бы я передал тот же JavaScript, но использовал
AfterEffects.exe -s "here is same javascript ending with; app.quit();"
он завершается (завершается) красиво.
Я бы остался с передачей javascript (с использованием -r
). Но существует ограничение на количество символов, которые можно использовать в командной строке в Windows. Мне нужно иметь возможность заставить After Effects завершать работу после завершения выполнения переданного скрипта -r c:/path/to/myJavaScript.jsx
.
Ответ №1:
возникла та же проблема, которую вы описываете, потому что проект изменился, и приложение ждет вашего ответа о том, сохранять его или нет.
легендарный Дэн Эббертс предлагает добавить:
app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);
app.quit();
работает для меня
Ответ №2:
Иногда эти две команды не работают.
app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);
app.quit();
Итак, вот еще одно решение, которое работает в Windows
var killAeCommand = "TASKKILL /F /IM AfterFX.exe";
system.callSystem("cmd /c "" killAeCommand """)
Я не уверен, но я думаю, что эта команда уничтожит все экземпляры AE, в моем случае работает нормально, потому что у меня открыт только один.