Открыть веб-страницу в After Effects с помощью ExtendScript

63
5

Это может быть просто, но я не могу понять это. Как открыть веб-страницу в главном браузере из extendscript, как я бы сделал с window.open() в Javascript?

Я ориентирую After Effects и хотел бы, чтобы он работал как на OS X, так и на Windows.

спросил(а) 2021-01-25T12:50:43+03:00 4 месяца, 4 недели назад
1
Решение
76

В After Effects вы можете просто сделать это, используя системный объект, как упоминал Дирк. Однако для этого вам нужно несколько вещей:

    проверяя, что сценарий может получить доступ к сети:

    if (app.preferences.getPrefAsLong("Main Pref Section", "Pref_SCRIPTING_FILE_NETWORK_SECURITY") != 1)
    {
    alert("Please tick the \"Allow Scripts to Write Files and Access Network\" checkbox if Preferences > General");

    // Then open Preferences > General to let people tick the checkbox
    app.executeCommand(2359);

    // Here you should check again if they ticked it, and choose to continue or stop ...
    }

    проверка ОС:

    var os = system.osName;
    if (!os.length)
    {
    // I never remember which one is available, but I think $.os always is, you'll have to check
    os = $.os;
    }
    app_os = ( os.indexOf("Win") != -1 ) ? "Win" : "Mac"

    os-зависимые системные вызовы:

    var url = "http://aescripts.com";

    if ( app_os == "Win" )
    {
    system.callSystem("explorer " + url);
    }
    else
    {
    system.callSystem("open " + url);
    }

ответил(а) 2021-01-25T12:50:43+03:00 4 месяца, 4 недели назад
62

Один независимый от приложения способ - записать представление операционной системы в URL-адрес операционной системы в файл, а затем выполнить() файл.

На Mac это будет файл.webloc. Основной формат - "plist binary", если вы предпочитаете генерировать xml, создайте образец webloc, перетащив его из адреса браузера и преобразуйте его:

plutil -convert xml1 ~/Desktop/sample.webloc

Чтобы вызвать этот webloc, запустите ExtendScript

File("~/Desktop/sample.webloc").execute()

ответил(а) 2021-01-25T12:50:43+03:00 4 месяца, 4 недели назад
45

Если у вас есть доступ к CSInterface.js:

cep.util.openURLInDefaultBrowser("http://www.google.com")

ответил(а) 2021-01-25T12:50:43+03:00 4 месяца, 4 недели назад
45

Объем вопроса, по-видимому, был уточнен после After Effects (AE), поэтому я добавляю еще один ответ, специфичный для этого приложения.

На моей машине AE CS6 не создает файл объектной модели для отображения с помощью инструмента ExtendScript Toolkit. Повторите попытку, просмотрщик объектной модели находится в меню справки ESTK.

Во всяком случае, браузер данных ESTK работает. Если вы нацеливаете AE, вы увидите пару объектов и классов. В конце концов проверьте еще несколько пунктов меню в выпадающем меню панели данных. Я еще глубже посмотрел на объект приложения (там нет openUrl()), а также нашел "системный" объект. Разверните это, и вы увидите несколько интересных методов.

Следующий скрипт открывает URL-адрес на Mac. Я не пробовал Windows, возможно, это то же самое.

system.callSystem("open http://www.google.com")

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

ответил(а) 2021-01-25T12:50:43+03:00 4 месяца, 4 недели назад
44

Вы можете делать что-либо на своем локальном компьютере - в командной строке и в любом другом файле VBS, и вы можете запустить файл vbs из javascript следующим образом:

function RunScriptVBS(whatscriptname){
app.doScript(File(whatscriptname), ScriptLanguage.VISUAL_BASIC);
}

Вот ваш скрипт vbs:

Dim objShell
Set objShell = CreateObject("WScript.shell")
objShell.Run ("http://www.somewhere.com")
set objShell = nothing

ответил(а) 2021-01-25T12:50:43+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема