这可能很简单,但我无法弄清楚。如何在extendbook中打开一个网页,就像我在Javascript中使用window.open()
一样?
我的目标是After Effects,并希望它能同时适用于OS X和Windows。
答案 0 :(得分:2)
在After Effects中,你可以简单地使用系统对象来完成它,就像Dirk提到的那样。但是你需要做几件事:
检查脚本是否可以访问网络:
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);
}
答案 1 :(得分:1)
一种独立于应用程序的方法是将操作系统的URL表示写入文件,然后执行()文件。
在Mac上将是.webloc文件。底层格式为“plist binary”,如果您更喜欢生成xml,请通过拖放浏览器地址创建一个示例webloc并将其转换为:
plutil -convert xml1 ~/Desktop/sample.webloc
要调用该webloc,请运行ExtendScript
File("~/Desktop/sample.webloc").execute()
答案 2 :(得分:0)
您可以在本地计算机上执行任何操作 - 命令行和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
答案 3 :(得分:0)
问题的范围显然已经改进为After Effects(AE),因此我添加了另一个特定于该应用程序的答案。
在我的机器上AE CS6不会生成由ExtendScript Toolkit显示的对象模型文件。请自行重试,对象模型查看器位于ESTK的帮助菜单中。
无论如何,ESTK数据浏览器确实有效。如果你以AE为目标,你会看到几个对象和类。最后在数据库面板弹出菜单中检查更多菜单项。我深入研究了app对象本身(没有openUrl()),还找到了一个“系统”对象。展开它,你会看到几个有趣的方法。
以下脚本在Mac上打开一个URL。我没有试过Windows,也许它甚至都是一样的。
system.callSystem("open http://www.google.com")
由于这是我第一次推出AfterEffects,我可能错过了更好的方法。