這可能很簡單,但我無法弄清楚。我怎樣才能在extensionscript的主瀏覽器中打開一個網頁,就像我在Javascript中使用window.open()
一樣?使用ExtendScript在After Effects中打開網頁
我的目標是After Effects,並希望它可以在OS X和Windows上工作。
這可能很簡單,但我無法弄清楚。我怎樣才能在extensionscript的主瀏覽器中打開一個網頁,就像我在Javascript中使用window.open()
一樣?使用ExtendScript在After Effects中打開網頁
我的目標是After Effects,並希望它可以在OS X和Windows上工作。
在After Effects中,您可以簡單地使用系統對象來執行此操作,如Dirk所述。然而,你需要爲幾件事情:
檢查該腳本可以訪問網絡:
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"
操作系統相關的系統調用:
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 url = "http://aescripts.com";
if (app_os == "Win")
{
system.callSystem("explorer " + url);
}
else
{
system.callSystem("open " + url);
}
你可以做你的本地計算機上的任何東西 - 命令行和其他任何一個VBS文件,你可以啓動從JavaScript這樣的VBS文件:
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
一種獨立於應用程序的方式是將操作系統的URL表示寫入文件,然後執行()該文件。
在Mac上這將是一個.webloc文件。底層的格式是「的plist二進制」,如果你喜歡生成XML,通過拖放從瀏覽器地址創建一個示例webloc &下降,並將其轉換:
plutil -convert xml1 ~/Desktop/sample.webloc
來調用webloc,運行ExtendScript
File("~/Desktop/sample.webloc").execute()
謝謝,所以我想沒有簡單的方法可以讓它獨立於平臺(OS X + Windows)並且無需創建文件就可以完成它了嗎? –
問題的範圍顯然已被提煉爲After Effects(AE),所以我添加了另一個特定於該應用程序的答案。
在我的機器上AE CS6不會生成ExtendScript Toolkit顯示的對象模型文件。請自己重試,對象模型查看器位於ESTK的幫助菜單中。
無論如何,ESTK數據瀏覽器確實有效。如果你瞄準AE,你會看到一些對象和類。最終在數據採集器面板彈出菜單中檢查更多菜單項。我深入瞭解了應用程序對象本身(沒有openUrl()),並且還找到了「系統」對象。展開,你會看到幾個有趣的方法。
以下腳本在Mac上打開URL。我沒有試過Windows,也許它是一樣的。
system.callSystem("open http://www.google.com")
由於這是我第一次啓動AfterEffects,我可能錯過了更好的方法。
假設您有權訪問CSInterface。JS:
cep.util.openURLInDefaultBrowser("http://www.google.com")
請注意,在CC中,爲了檢查網絡的可訪問性,應該使用「Main Pref Section v2」,「Pref_SCRIPTING_FILE_NETWORK_SECURITY」。他們在字符串中加了'v2'。 – ariestav