Photoshop:如何从另一个JSX脚本中运行/调用JSX脚本?

4
我有一些变量和字符串在一个JSX脚本中,我希望在Photoshop的另一个JSX脚本中使用它们。
我想在第二个脚本中重新运行第一个脚本,并以此方式获取其中的变量。我该如何做?
更多细节:我正在使用第一个脚本并在其中操作数字。当我完成工作后,我希望另一个脚本获取这些数字并对这些变量执行一些计算,并提示我以便我可以将其复制粘贴到其他地方使用。
这是我在Stack上的第一篇文章,我已经在这个网站上找到了大量信息,真的很棒,感谢这里的每一个人 :)

请参考https://dev59.com/glPTa4cB1Zd3GeqPi2jB,但我的答案比这里的更长。 - david van brink
2个回答

5
我通过进一步搜索找到了解决方案。答案在这里:http://forums.adobe.com/thread/555016 以下是我所使用的代码。由于我只需要运行一个脚本,因此我将其他内容注释掉了。
var SCRIPTS_FOLDER =  decodeURI(app.path + '/' + localize("$$$/ScriptingSupport/InstalledScripts=Presets/Scripts"));
var geo_dynamic = File(SCRIPTS_FOLDER + "/geo_dynamic.jsx");
//var Script2 = File(SCRIPTS_FOLDER + "/Script2.jsx");
//var Script3 = File(SCRIPTS_FOLDER + "/Script3.jsx");
$.evalFile (geo_dynamic);
//$.evalFile (Script2);
//$.evalFile (Script3);

这有点超出我的理解范围,但它确实有效。有趣的是,做一些简单的事情居然如此复杂!在我开始编写Perl脚本时,我发现这在Perl中要容易得多。


1
这是它的工作原理:第一行创建一个字符串,该字符串是脚本文件夹的绝对路径,第二行从该路径加载“geo_dynamic”文件,第三行评估该文件(在当前范围内运行它)。这是一种常见的模式,适用于没有固有包含或要求方法的语言。脚本语言通常不支持方便的多源文件加载,因此像这样的解决方案非常受欢迎,特别是现在JavaScript经常用于更广泛和更复杂的应用程序。也欢迎! - Daniel Mendel
不错!比之前使用的(并在其他问题中发布的)要短得多。 - david van brink

1

我刚刚找到了一个更好的方法来导入另一个jsx文件。非常简单,只需加入这一行代码即可:

#include "path/to/file.jsx"

之后,您可以使用任何导入的jsx方法。
例如:
#include "path/to/file.jsx"
foreign_method();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接