Застрял, пытаясь передать значение от JSX до JS - PullRequest
0 голосов
/ 13 сентября 2018

Работая над плагином photoshop, мне нужно, чтобы значение ширины текущего документа было доступно в моем скрипте index.js.

Насколько я знаю, я могу получить только значение в своем индексе.jsx-документ, используя следующий код:

var mywidth = app.activeDocument.width;

Можно ли получить такое же значение из моего файла index.js?Если нет, есть ли способ передать значение из моего файла index.jsx обратно в файл index.js?

Как некоторые люди уже предложили в предыдущих вопросах, которые я задавал здесь, я попыталсялучше всего использовать советы, описанные в статье Давиде Барранки здесь: https://www.davidebarranca.com/2014/02/html-panels-tips-5-passing-objects-from-jsx-to-html-json/

Но по какой-то причине я просто не могу заставить ее работать.

1 Ответ

0 голосов
/ 16 сентября 2018

Во-первых, вам нужно загрузить файл CSInterface.js в вашу панель. Убедитесь, что вы скачали этот файл, и ваш путь к нему правильный.

var csInterface = new CSInterface();

Тогда вы можете использовать метод evalScript.

csInterface.evalScript()

Первый аргумент - это строка для eval, а второй аргумент - обратный вызов, потому что скрипт может занять некоторое время, и вы не захотите заморозить интерфейс панели, пока скрипт не будет выполнен. Обратный вызов имеет переменную, которая является результатом вашего кода JSX в строке.

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

Вы получите обратно ширину в единицах в соответствии с единицами измерения, установленными в настройках Photoshop. Поэтому вы можете указать преобразование в пиксели. В любом случае это не будет работать, если ваши единицы документа в процентах. В этом случае вам необходимо изменить единицы измерения заранее.

...