Как легко мы получили результат! Однако я выбрал этот пример не просто так - он служит хорошей иллюстрацией важности внимательного отношения к использованию тех или иных объектов. Давайте проанализируем, гарантирует ли наше решение 100%-ю достоверность. Предположим, в публикации установлена низкая степень увеличения. Соответственно, на экран выводится сразу несколько страниц- в таком случае активной страницей может быть любая, в зависимости от расположения линии их раздела на экране. Таким образом, универсальным предложенное решение признать нельзя - альтернативный способ будет рассматриваться в разд. 5.7.

Возьмите за правило - всегда проверять себя, поскольку часто подобные "подводные камни" не заметны, что может привести к различным недоразумениям.

2.2. Работаем с выделением

Как уже говорилось, коллекции объединяют объекты с одинаковыми свойствами, т. е. страницы - это одна коллекция, текстовые блоки - вторая, изображения - третья и т. д. А вот selection (выделенные объекты) - объект уникальный. Он не имеет какого-то определенного типа, поскольку определяется типом входящих в него объектов. Если выбраны отдельные символы текста, selection будет иметь тип text, если слово целиком - word, если абзац- paragraph, если текстовые блоки- textFrames, если графика- то Rectangle И Т. Д.

Несмотря на отсутствие в конце "s", объект selection представляет собой массив, элементами которого являются все выделенные объекты, соответственно к конкретному выделенному объекту обращение происходит только через selection [index], где index- порядковый номер объекта среди выделенных. В остальном selection ведет себя как любой другой объект. Например, если выделен текстовый фрейм, то к его текстовому содержимому обращаются через объект text (если к содержащейся внутри него графике - graphics и т. п.) Разумеется, нужно помнить об ограничениях самого InDesign - так, он не позволяет выделить несколько отдельных текстовых фрагментов, поэтому обращение seiection[0].texts[1] вызовет ошибку. При этом selection[0] .paragraphs [1] даст ссылку на второй абзац в выделенном тексте, sele'ction[0] .paragraphs [1] .characters [9] - на десятый СИМВОЛ в этом абзаце и т. д.

Положение курсора (иными словами точки вставки) в публикации - не что иное, как тот же selection [ о ].

Обратите внимание на важную особенность: если нужно получить доступ, например, к выделенным текстовым фреймам, то в таком случае количество объектов в массиве selection равно количеству выделенных фреймов, соответственно, для доступа к ним используют seiection[0], seiection[i], selection [2] И Т. Д., а не selection [0] .textFrames [0], selection [0] . textFrames [ 1 ], как можно было бы предположить. То же самое справедливо и в отношении остальных объектов - будь то ячейка таблицы или элемент графики.

ГЛАВА 3

Диалоговые окна

Диалоги активно используются в скриптинге. Одни являются обязательными элементами, обеспечивающими взаимодействие с пользователем, в других случаях - просто информируют о произошедших событиях (например, показывают инструкции перед запуском, предупреждения об ошибках или сообщают о завершении скрипта).


⇐ вернуться назад | | далее ⇒