переписать код под CS3;

вставить в начале скрипта строку арр.scriptingVersion =4.0

Она принудительно активизирует исполнительный механизм от предыдущей версии вместо самой последней установленной на компьютере.

ГЛАВА 2

Общие сведения об объектной модели

Все современные приложения (и InDesign в том числе) используют объектно-ориентированную модель для доступа к воздействуемым объектам. Что это значит?

Представьте себе дом, в котором есть двери, окна, комнаты - это все как раз и есть разные объекты, принадлежащие данному дому. Каждый сложный объект состоит из более мелких, которые являются зависимыми по отношению к своему родителю. Так, например, светильник имеет несколько лампочек, которые, в свою очередь, состоят из нити накаливания, цоколя, колбы ит. д.

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

Если провести аналогию с языком, то объекты можно рассматривать как существительные, методы- как глаголы, а свойства- как прилагательные. Складывая из них предложения, мы получаем текст, который понятен собеседнику, точно также набор команд в скрипте будет понятен InDesign.

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

Кроме того, нельзя сбрасывать со счетов фактор скорости. Например, неэффективной будет команда "Открыть двери" для того, чтобы открыть лишь конкретную дверь в конкретной комнате. Это особенно проявляется при больших объемах обработки, например работе с таблицами: число ячеек растет в геометрической прогрессии от размеров таблицы и форматирование каждой в отдельности даже на мощной машине займет значительное время.

В то же время, подходить к скриптингу нужно творчески. Например, операция "Открыть двери" займет меньше времени, чем поочередное выполнение команд "Открыть дверь в спальне", "Открыть дверь в детской" и т. д. для всех комнат дома.

2.1. Коллекции

Для удобства работы объекты с одинаковыми свойствами объединены в коллекции (или классы). Так, двери - это одна коллекция, обладающая своими уникальными свойствами, окна - другая и т. д. В InDesign каждый объект, будь то текстовый фрейм, символ текста, абзац или цвет, принадлежит своей коллекции (текстовым фреймам, символам, абзацам, образцам цвета соответственно), причем сама коллекция также является объектом, с собственными свойствами и методами. Использование коллекций очень удобно с практической точки зрения: они позволяют, например, вместо команды "Открыть в объекте № 123 объект номер 12345" указать "Открыть четвертую дверь на втором этаже", что более понятно.


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