卡住试图将值从jsx传递给js

时间:2018-09-13 16:09:46

标签: javascript photoshop photoshop-script

在使用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/

但是由于某种原因,我无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

首先,您需要在面板中加载文件CSInterface.js。确保下载了此文件,并且该文件的路径正确。

var csInterface = new CSInterface();

然后您可以使用evalScript方法。

csInterface.evalScript()

第一个参数是eval的字符串,第二个参数是回调,因为脚本可能需要一些时间,并且您不希望在完成脚本之前冻结面板UI。回调具有变量,它是您的JSX代码在字符串中的结果。

csInterface.evalScript('app.activeDocument.width.as("px")',function(result){
    alert(result)
});

您将根据在Photoshop设置中获得的单位获得背面宽度。因此,您可以指定转换为像素。无论如何,如果您的文档单位是百分比,那么它将不起作用。在这种情况下,您需要提前更改单位。