Adobe Photoshop UXP: Как вызвать «Подогнать под экран» в UXP JavaScript?

#plugins #scripting #adobe #photoshop

Вопрос:

Я конвертирую рабочий CEP/ExtendScript в UXP JavaScript.

Есть ли способ использовать масштабирование по размеру экрана (так же, как Ctrl 0) в сценариях UXP?

В CEP/ExtendScript мы можем использовать следующее.

 app.runMenuItem(app.charIDToTypeID("FtOn"));
// Fit to Screen (same as Ctrl 0)
 

Похоже, это не реализовано подобным образом в Photoshop UXP DOM, как

 require('photoshop').app.runMenuItem(1182027630);
 

Результат:

введите описание изображения здесь

Из списка плагина UXP Alchemist отображается:

 {
  "_obj": "invokeCommand",
  "commandID": 1192,
  "kcanDispatchWhileModal": true,
  "_isCommand": false
}
 

Из batchPlay () выше, похоже, не выполняется (эта часть не совсем уверена).

 var result = require('photoshop').action.batchPlay([
    {
        "_obj": "invokeCommand",
        "commandID": 1192,
        "kcanDispatchWhileModal": true,
        "_isCommand": false
    }
], {synchronousExecution: true});
 

Результат:

введите описание изображения здесь

Я не совсем уверен, правильно ли использовать batchPlay() и выше.

Но есть ли какой-либо способ использовать масштабирование по размеру экрана (так же, как Ctrl 0) в сценариях UXP?

Комментарии:

1. invokeCommand является вспомогательным действием для мусора, которое часто появляется в прослушивателях, но вы не можете его запустить. Я бы попытался поместить пункт меню в действие, преобразовать его в сценарий, а затем преобразовать полученный сценарий AM в UXP batchplay

2. У меня есть конвертер дескрипторов действий (ad-to-uxp.jsx) и я использую другое преобразование задач. Это хорошо сработало. Но я все еще не мог найти способ для приложения ExtendScript.runMenuItem().

3. Многие вещи из ES не существуют в UXP. Теперь это наша жизнь