У меня есть сценарий, выполнение которого занимает около 5-10 секунд. Я хотел бы иметь возможность дать пользователю очень четкое указание, когда он закончил выполнение.
Моя идея для достижения этого заключалась в том, чтобы создать слой с нарисованным на нем большим знаком "...за работой...". Скрипт сделает этот слой видимым в начале скрипта, используя что-то вроде:
app.activeDocument.artLayers.getByName('...working...').visible = 1
затем выполните оставшуюся часть сценария и, наконец, снова скройте слой в самом конце.
К сожалению, это не работает, потому что Photoshop не обновляет статус слоя до завершения скрипта. Теоретически слой «отображается», но сразу же снова скрывается, поэтому пользователь никогда его не видит.
Есть ли способ отобразить слой до того, как скрипт завершит выполнение?
Или вы можете придумать какой-либо другой способ, которым я могу визуально уведомить пользователя, как только сценарий будет завершен, без каких-либо трений, не требующих дополнительных усилий со стороны пользователя (т.е. не всплывающее диалоговое окно, требующее нажатия OK )
Заранее спасибо.
Отличный ответ! Это именно то, что мне нужно. app.refresh () работает, так что это полезно знать для использования в будущем. Хотя, конечно, метод индикатора выполнения в этом случае даже лучше.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны использовать пользовательский интерфейс 'progressbar', что намного лучше, чем отображение слоя.
Вы можете загрузить и прочитать PDF-файл документации по пользовательскому интерфейсу Adobe script, написанный Питером Кэрелом, на этой веб-странице ниже.
Вызов
app.refresh()должен принудительно обновить статус слоя. Однако вместо этого рассмотрите возможность создания индикатора выполнения. См. Общий фрагмент кода в этот ответ.