Событие на смену текущей страницы

  • Автор темы Автор темы vbatushev
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

vbatushev

Топикстартер
20 лет на форуме
Сообщения
2 242
Реакции
1 227
В общем, встала передо мной задача — нужно слушать скриптом, не сменилась ли страница (разворот) и на это оперативно реагировать.
Понятно, что нужно повесить addEventListener, но опять же на что? На Application (ведь у него только есть activeWindow, у которого только и можно подслушать activePage/activeSpread)? Но тогда какое событие ждать?
Рою чота рою в интернетах и ничего не вижу. Что печалит. Может, кто решал похожие задачи и знает, где у адобов данная инфа прикопана?
 
Насчет события не знаю, но, кажется, у документа было свойство isSaved (или я с иллюстратором путаю? в иллюстраторе точно было, в индизайновском PluginSDK тоже), которое надо непрерывно отслеживать. Другое дело, это свойство показывает, что файл изменился после последнего сэйва, а надо как?
 
Нет, нужно следить за изменением текущей активной страницы (разворота). Пока возникли подозрения на Application.AFTER_SELECTION_ATTRIBUTE_CHANGED или Application.AFTER_CONTEXT_CHANGED…
 
А, извиняюсь, я сразу не понял - отслеживать надо не изменение, а смену текущей страницы?
 
Да, моя вина — некорректно сформулировал, но тему править уже не могу.
 
В общем, как-то так:

Код:
#targetengine "session"

app.eventListeners.everyItem().remove();
var afterContext = app.addEventListener(Application.AFTER_ACTIVATE, myAfterContextChanged,  false);
function myAfterContextChanged(myEvent) {
    if (app.documents.length > 0) {
        var w = app.activeWindow;
        if (w.constructor.name == "LayoutWindow") {
            w.eventListeners.everyItem().remove();
            w.addEventListener(LayoutWindow.AFTER_ATTRIBUTE_CHANGED, lwHandler, false);
        }     
    }
}

function lwHandler(myEvent) {
    $.writeln(myEvent.toSource());
}
 
  • Спасибо
Реакции: Skvoznyak
круто! я думал, это невозможно

но полагаю, что надо проверять, изменилась ли активная страница или нет - event наверняка будет выброшен при изменении размера окна и других изменениях
 
Да, можно проверять, хотя мне это не критично, у меня задача реагировать при стечении двух обстоятельств — смены активного разворота и активности определенного слоя.
 
Статус
Закрыто для дальнейших ответов.