坚持尝试将值从 jsx 传递给 js
Stuck trying to pass value from jsx to js
使用 photoshop 插件,我需要在我的 index.js 脚本中提供当前文档宽度的值。
据我所知,我只能使用以下代码获取 index.jsx 文档中的值:
var mywidth = app.activeDocument.width;
有什么方法可以从我的 index.js 文件中获取相同的值吗?
如果没有,是否有任何方法可以将值从我的 index.jsx 文件传递回 index.js 文件?
正如一些人在我之前在这里提出的问题中所建议的那样,我已尽力使用 Davide Barranca 的文章中描述的技巧:
https://www.davidebarranca.com/2014/02/html-panels-tips-5-passing-objects-from-jsx-to-html-json/
但出于某种原因,我无法让它正常工作。
首先,您需要在面板中加载文件 CSInterface.js
。确保您下载了此文件并且您的文件路径正确。
var csInterface = new CSInterface();
然后就可以使用evalScript方法了。
csInterface.evalScript()
第一个参数是 eval 的字符串,第二个参数是回调,因为脚本可能需要一些时间,您不希望在脚本完成之前冻结面板 UI。回调有变量,它是字符串中 JSX 代码的结果。
csInterface.evalScript('app.activeDocument.width.as("px")',function(result){
alert(result)
});
您将根据 Photoshop 设置中的单位返回单位宽度。因此,您可以指定转换为像素。无论如何,如果您的文档单位是百分比,它将不起作用。在这种情况下,您需要提前更改单位。
使用 photoshop 插件,我需要在我的 index.js 脚本中提供当前文档宽度的值。
据我所知,我只能使用以下代码获取 index.jsx 文档中的值:
var mywidth = app.activeDocument.width;
有什么方法可以从我的 index.js 文件中获取相同的值吗? 如果没有,是否有任何方法可以将值从我的 index.jsx 文件传递回 index.js 文件?
正如一些人在我之前在这里提出的问题中所建议的那样,我已尽力使用 Davide Barranca 的文章中描述的技巧: https://www.davidebarranca.com/2014/02/html-panels-tips-5-passing-objects-from-jsx-to-html-json/
但出于某种原因,我无法让它正常工作。
首先,您需要在面板中加载文件 CSInterface.js
。确保您下载了此文件并且您的文件路径正确。
var csInterface = new CSInterface();
然后就可以使用evalScript方法了。
csInterface.evalScript()
第一个参数是 eval 的字符串,第二个参数是回调,因为脚本可能需要一些时间,您不希望在脚本完成之前冻结面板 UI。回调有变量,它是字符串中 JSX 代码的结果。
csInterface.evalScript('app.activeDocument.width.as("px")',function(result){
alert(result)
});
您将根据 Photoshop 设置中的单位返回单位宽度。因此,您可以指定转换为像素。无论如何,如果您的文档单位是百分比,它将不起作用。在这种情况下,您需要提前更改单位。