Запись сценария действия

Следующий этап разработки Передачи Случайное действие Элементов пишет сам сценарий. В этой главе описываются, как записать обработчик команды, что все действия AppleScript должны реализовать и обсуждают подпрограммы и другие аспекты сценариев для действий.

Для получения дополнительной информации об этом предмете см. “Реализацию Действия AppleScript” в Руководстве по программированию Automator.

На Обработчике команды выполнения

В окне проекта XCode для Передачи Случайный проект действия Элементов найдите main.applescript файл и дважды щелкает по нему. Файл открывается в редакторе во многом как Редактор сценариев. Это содержит «скелет» on run обработчик команды, как показано на рисунке 6-1.

Рисунок 6-1  шаблон для on run обработчик
The template for the on run handler

Давайте кратко смотреть на этот обработчик команды прежде, чем записать что-либо. Automator вызывает обработчик, когда это - очередь действия в потоке операций для выполнения. Обработчик имеет два параметра: input и parameters. input параметр является данными, предоставленными предыдущим действием в потоке операций. Шаблон on run обработчик просто возвращает ввод как свой вывод. parameters параметр является записью, содержащей пользователей настроек, сделали в представлении действия.

Запустите путем инициализации списка элементов для возврата, как выведено, и извлечение пользователей настроек сделало из записи параметров. Рисунок 6-2 показывает Вам код сценариев для записи.

Рисунок 6-2  , Инициализирующий локальные выходные переменные и переменные параметра
Initializing local output and parameter variables

Первая строка инициализирует названный список output_items и последняя строка возвращает этот список. Промежуточный, сценарий тестирует, является ли входной объект пустым списком или является единственным элементом вместо списка и возвратов, что, как выведено (если единственный элемент, это добавляет его к output_items перечислите сначала).

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

(|numberToChoose| of parameters)

это numberToChoose один из ключей, которые Вы добавили к атрибутам экземпляра Параметров в Интерфейсном Разработчике при установлении привязки действия. В сценарии Вы используете этот ключ для доступа к значению, соответствующему выбору пользователь, сделанный в пользовательском интерфейсе.

Наконец, добавьте остающиеся строки, которые, как показывают на рисунке 6-3, завершались on run обработчик команды.

Рисунок 6-3  финал on run обработчик
The final on run handler

Эти строки сценария тестируют, установил ли пользователь переключатель Number или Percentage в пользовательском интерфейсе; если это - Процент, сценарий вызывает подпрограмму для получения указанного процента входных элементов как число. Тогда в цикле это добавляет случайный выбор входных элементов — ограниченный указанным или вычисленным числом — к выходным элементам.

Запись подпрограмм

main.applescript файл для Передачи Случайное действие Элементов включает две подпрограммы. Первое, convert_percentage_to_number, Вы уже встретились при записи on run сценарий обработчика. Эта подпрограмма выполняет простое вычисление, показанное на рисунке 6-4.

  Подпрограммы рисунка 6-4 вызывает основной сценарий
Subroutines called by the main script

Вторая подпрограмма, localized_string, делает что-то очень важное несмотря на то, что его не вызывают on run обработчик команды Вы записали. Через localized string команда, подпрограмма возвращает строку (идентифицированный key_string) для предпочтительной локализации, указанной текущим пользователем в Установках системы. Можно использовать эту строку в диалоговых окнах и сообщениях об ошибках. Для использования этой подпрограммы эффективно, необходимо сначала интернационализировать действие для всех поддерживаемых локализаций. Чтобы узнать, как сделать это, посмотрите соответствующий раздел в Разработке Действий Руководства по программированию Automator.