试图将值从jsx传递给js

问题描述 投票:0回答:1

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

但由于某种原因,我无法让它发挥作用。

javascript photoshop photoshop-script
1个回答
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设置中的单位以单位为单位返回宽度。因此,您可以指定转换为像素。无论如何,如果您的文档单位是百分比,它将无法工作。在这种情况下,您需要提前更改单位。

© www.soinside.com 2019 - 2024. All rights reserved.