首页 > 解决方案 > 试图将值从 jsx 传递给 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-提示 5-传递对象-从 jsx 到 html-json/

但由于某种原因,我无法让它工作。

标签: javascriptphotoshopphotoshop-script

解决方案


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

var csInterface = new CSInterface();

然后你可以使用 evalScript 方法。

csInterface.evalScript()

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

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

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


推荐阅读