Photoshop Javascript получить выбранный путь? - PullRequest
2 голосов
/ 14 марта 2020

Моя дилемма лежит в pathItems (не путь к файлу, а те векторные пути на вкладке рядом со слоями).

Я хочу, чтобы мой сценарий реагировал на то, какой из нескольких путей в данный момент выбран. Есть ли способ получить индекс или имя выбранного в настоящее время пути в Photoshop через JavaScript (или через что-то еще)?

Я не нашел никакой документации по этому вопросу и хотел бы убедиться, что у меня нет просто упустил что-то очевидное.

1 Ответ

1 голос
/ 15 марта 2020

Вот две функции для получения индекса и имени pathItem. Если путь не выбран, getPathIndex() вернет -1, getPathName() выдаст ошибку, обрабатывайте ее так, как хотите. Обратите внимание, что если выбрано несколько путей, функция будет работать только с последним: я не думаю, что возможно итерировать несколько выбранных путей.

function getPathIndex()
{
  var ref = new ActionReference();
  ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("TrgP"));
  ref.putEnumerated(charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
  var desc = executeActionGet(ref);
  return desc.getInteger(charIDToTypeID("TrgP"));
}

function getPathName()
{
  var ref = new ActionReference();
  ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("PthN"));
  ref.putEnumerated(charIDToTypeID('Path'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
  try
  {
    var desc = executeActionGet(ref);
  }
  catch (e)
  {
    // handle error
    return '';
  }
  return desc.getString(charIDToTypeID("PthN"));
}
...