#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 batchplay2. У меня есть конвертер дескрипторов действий (ad-to-uxp.jsx) и я использую другое преобразование задач. Это хорошо сработало. Но я все еще не мог найти способ для приложения ExtendScript.runMenuItem().
3. Многие вещи из ES не существуют в UXP. Теперь это наша жизнь