Ссылка обработчика

Эта глава обеспечивает ссылку для обработчиков, определенных и представленных в приблизительно Обработчиках. Это описывает типы параметров, которые можно использовать с обработчиками и как Вы вызываете их. Это также описывает continue и return операторы, которые Вы используете для управления потоком выполнения в обработчиках.

продолжать

A continue оператор заставляет AppleScript вызывать обработчик с тем же именем в родителе текущего обработчика. Если нет такого обработчика в родителе, AppleScript ищет родительскую цепочку, заканчивающуюся текущим приложением.

A continue оператор походит на вызов обработчика, в котором после того, как выполнение завершается в новом расположении, это возобновляется с оператором после continue оператор.

Синтаксис
continue handlerName [ parameterList ]
Заполнители
handlerName

Требуемый идентификатор, указывающий имя текущего обработчика (который является также именем обработчика, который можно продолжать выполнение).

parameterList

Список параметров, которые будут переданы handlerName.

Список должен следовать за тем же форматом как определения параметра в определении обработчика для команды. Для обработчиков с маркированными параметрами это означает, что метки параметра должны соответствовать тем в определении обработчика. Для обработчиков с позиционными параметрами параметры должны появиться в правильном порядке.

Можно перечислить переменные параметра, указанные в исходной команде (и таким образом исходные значения), или можно перечислить значения, которые могут отличаться от тех из исходных переменных.

Примеры

Можно записать обработчик, переопределяющий команду AppleScript, но использующий a continue оператор для передачи управления на команде AppleScript при желании:

on beep numTimes
    set x to display dialog "Start beeping?" buttons {"Yes", "No"}
    if button returned of x is "Yes" then ¬
        continue beep numTimes -- Let AppleScript handle the beep.
        -- In this example, nothing to do after returning from the continue.
end beep
 
beep 3 --result: local beep handler invoked; shows dialog before beeping
tell my parent to beep 3 -- result: AppleScript beep command invoked

Когда AppleScript встречается с оператором beep 3, это вызывает локальную переменную beep обработчик, выводящий на экран диалоговое окно. Если пользователь нажимает кнопку Да, обработчик использует a continue оператор для передачи beep команда к родителю сценария (AppleScript), обрабатывающий команду путем подачи звукового сигнала. Если пользователь нажимает No, он не продолжается beep команду и никакой звук слышат.

Заключительный оператор, tell my parent to beep 3, показывает, как непосредственно вызвать AppleScript beep команда, а не локальный обработчик.

Для примера, использующего a continue оператор для выхода из обработчика сценария и возврата управляет к значению по умолчанию приложения quit обработчик, посмотрите Обработчики выхода.

Для дополнительных примеров посмотрите Используя продолжать Оператор в Объектах сценария.

возвратиться

A return оператор выходит из обработчика и дополнительно возвращает указанное значение. Выполнение продолжается в месте в сценарии, где вызвали обработчик.

Синтаксис
return [ expression ]
Заполнители
выражение

Представляет значение для возврата.

Примеры

Следующее утверждение, вставленное в организацию обработчика, возвращает целое число 2:

return 2 -- returns integer value 2

Если Вы включаете a return оператор без выражения, AppleScript сразу выходит из обработчика, и никакое значение не возвращается:

return -- no value returned

Посмотрите другие разделы всюду по Ссылке Обработчика для большего количества примеров сценариев, использующих return оператор.

Обсуждение

Если обработчик не включает a return оператор, AppleScript возвращает значение, возвращенное последним оператором. Если последний оператор не возвращает значение, AppleScript ничего не возвращает.

Когда AppleScript закончил выполнять обработчик (т.е. когда он выполняет a return оператор или последний оператор в обработчике), это передает управление к месту в сценарии сразу после места, где вызвали обработчик. Если вызов обработчика является частью выражения, AppleScript использует значение, возвращенное обработчиком для оценки выражения.

Это часто считают хорошей практикой программирования для имения всего один return оператор и определяет местоположение его в конце обработчика. Выполнение так может предоставить следующие преимущества:

В некоторых случаях, однако, может иметь больше смысла использовать многократный return операторы. Например, minimumValue обработчик в Синтаксисе Обработчика (Позиционные Параметры) является простым сценарием, использующим два return операторы.

Для соответствующей информации посмотрите Обработку ошибок AppleScript.

Синтаксис обработчика (маркированные параметры)

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

Маркированные параметры идентифицируются их метками и могут быть перечислены в любом порядке.

Синтаксис
( on | to ) handlerName ¬
[ [ of | in ] directParamName ] ¬
[ ASLabel userParamName ]... ¬
[ given userLabel:userParamName [, userLabel:userParamName ]...]
[ statement ]...
end [ handlerName ]
Заполнители
handlerName

Идентификатор, называющий обработчик.

directParamName

Идентификатор для прямой переменной параметра. Если это включено, directParamName должен быть сразу перечислен после названия команды. Слово of или in прежде чем directParamName требуется в определяемых пользователем обработчиках, но дополнительный в определенных с помощью терминологии обработчиках (например, определенные приложениями).

Если определяемый пользователем обработчик включает прямой параметр, обработчик должен также включать по крайней мере один переменный параметр.

ASLabel

AppleScript-определенная метка. Доступные метки: about, above, against, apart from, around, aside from, at, below, beneath, beside, between, by, for, from, instead of, into, on, onto, out of, over, since, thru (или through), under. Это единственные метки, которые могут использоваться без специальной метки given. Каждая метка должна быть уникальной среди меток для обработчика (т.е. Вы не можете использовать ту же метку больше чем для одного параметра).

userLabel

Идентификатор для определяемой пользователем метки, связанной с определяемым пользователем параметром. Каждая метка должна быть уникальной.

Первая userLabel-userParamName пара должна следовать за словом given; любые дополнительные пары разделяются запятыми.

userParamName

Идентификатор для переменной параметра.

оператор

Любой оператор AppleScript. Эти операторы могут включать определения script объекты, каждый из который, как любой script возразите, может содержать обработчики и другой script объекты. Однако Вы не можете объявить другой обработчик в обработчике, кроме в a script объект.

Обработчики часто содержат оператор возврата.

Примеры

Для примеров и связанной концептуальной информации, посмотрите Обработчики с Маркированными Параметрами.

Обсуждение

Обработчик, записанный для ответа на команду приложения (как те в Обработчиках в Приложениях Сценария), не должен включать все возможные параметры, определенные для той команды. Например, приложение могло бы определить команду с помощью максимум пяти возможных параметров, но Вы могли определить обработчик для той команды с только двумя из параметров.

Если сценарий вызывает обработчик с большим количеством параметров, чем указано в определении обработчика, дополнительные параметры проигнорированы.

Вызов обработчика с маркированными параметрами

В этом разделе описываются синтаксис для вызова обработчика с маркированными параметрами.

Синтаксис
handlerName ¬
[ [ of | in ] directParam ] ¬
[ [ ASLabel paramValue ...] ¬
| [ with labelForTrueParam [, labelForTrueParam ]... ¬
[ ( and | , ) labelForTrueParam ] ] ¬
| [ without labelForFalseParam [, labelForFalseParam ]...] ¬
[ ( and | , ) labelForFalseParam ] ] ¬
| [ given userLabel:paramValue [, userLabel:paramValue ]...]...
Заполнители
handlerName

Идентификатор, называющий обработчик.

directParam

Любое допустимое выражение. Выражение для прямого параметра должно быть перечислено сначала, если это включено вообще.

ASLabel

Одна из следующих AppleScript-определенных меток использовала в определении обработчика: about, above, against, apart from, around, aside from, at, below, beneath, beside, between, by, for, from, instead of, into, on, onto, out of, over, since, thru (или through), under.

paramValue

Значение параметра, который может быть любым допустимым выражением.

labelForTrueParam

Метка для булева параметра, значение которого true. Вы используете эту форму в with пункты. Поскольку значение true подразумевается словом with, Вы обеспечиваете только метку, не значение. Для примера посмотрите findNumbers обработчик в Обработчиках с Маркированными Параметрами.

labelForFalseParam

Метка для булева параметра, значение которого false. Вы используете эту форму в without пункты. Поскольку значение false подразумевается словом without, Вы обеспечиваете только метку, не значение.

paramLabel

Любая метка параметра использовала в определении обработчика, который не является среди меток для ASLabel. Необходимо использовать специальную метку given указать эти параметры. Для примера посмотрите findNumbers обработчик ниже.

Примеры

Для примеров посмотрите Обработчики с Маркированными Параметрами.

Обсуждение

При вызове обработчика с маркированными параметрами Вы предоставляете следующее:

  1. Имя обработчика.

  2. Значение для прямого параметра, если обработчик имеет тот. Это должно непосредственно следовать за именем обработчика.

  3. Одна пара значения метки для каждой AppleScript-определенной метки и параметра определяется для обработчика.

  4. Одна пара значения метки для каждой определяемой пользователем метки и параметра определила для обработчика, который не является булевым значением.

    Первой паре предшествует слово given; запятая предшествует каждой дополнительной паре. Порядок пар не должен соответствовать порядок в определении обработчика.

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

    1. Предоставьте метку, сопровождаемую булевым выражением (как с небулевыми параметрами); например:

      given rounding:true
    2. Используйте комбинацию with и without пункты, как показано в следующих примерах:

      with rounding, smoothing and curling
      with rounding without smoothing, curling
Синтаксис обработчика (позиционные параметры)

Обработчик является набором операторов, которые могут быть вызваны по имени. В этом разделе описываются синтаксис для обработчиков, использующих позиционные параметры.

Синтаксис
on | to handlerName ( [ userParamName [, userParamName ]...] )
   [ statement ]...
end [ handlerName ]
Заполнители
handlerName

Идентификатор, называющий обработчик.

userParamName

Идентификатор для определяемой пользователем переменной параметра.

оператор

Любой оператор AppleScript, включая глобальные или локальные объявления переменных. Для получения информации об объеме локальных и глобальных переменных посмотрите Объем Переменных и Свойств.

Примеры

Для примеров и связанной концептуальной информации, посмотрите Обработчики с Позиционными Параметрами.

Вызов обработчика с позиционными параметрами

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

Синтаксис
handlerName( [ paramValue [, paramValue ]...] )
Заполнители
handlerName

Идентификатор, называющий обработчик.

paramValue

Значение параметра, который может быть любым допустимым выражением. Если существует два или больше параметра, они должны быть перечислены в том же порядке, в котором они были указаны в определении обработчика.

Примеры

Для примеров посмотрите Обработчики с Позиционными Параметрами

Обсуждение

При вызове обработчика с позиционными параметрами Вы предоставляете следующее:

  1. Имя обработчика.

  2. Открытие и закрывающая скобка.

  3. Если обработчик имеет какие-либо параметры, то Вы также перечисляете, в круглых скобках, следующем:

    Одно значение для каждого параметра определяется для обработчика. Значение может быть любым допустимым выражением.

Синтаксис обработчика (чередованные параметры)

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

Синтаксис
on | tohandlerNamePart:userParamName [namePart:userParamName ]... )
   [ statement ]...
end [ handlerName ]
Заполнители
handlerNamePart, namePart

Идентификатор, что, объединенный с другими частями, формирует имя обработчика.

userParamName

Идентификатор для определяемой пользователем переменной параметра.

оператор

Любой оператор AppleScript, включая глобальные или локальные объявления переменных. Для получения информации об объеме локальных и глобальных переменных посмотрите Объем Переменных и Свойств.

Примеры

Для примеров и связанной концептуальной информации, посмотрите Обработчики с Чередованными Параметрами.

Вызов обработчика с чередованными параметрами

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

Синтаксис
( tell scriptObject to | scriptObject's | my ) handlerNamePart:paramValue [ namePart:paramValue ]...] 
Заполнители
scriptObject

Объект сценария для направления обработчика вызывает к, который может быть любым допустимым выражением.

handlerNamePart, namePart

Идентификатор, называющий обработчик.

paramValue

Значение параметра, который может быть любым допустимым выражением. Если существует два или больше параметра, они должны быть перечислены в том же порядке, в котором они были указаны в определении обработчика.

Примеры

Для примеров посмотрите Обработчики с Позиционными Параметрами

Обсуждение

При вызове обработчика с позиционными параметрами Вы предоставляете следующее:

  1. Объект сценария для направления обработчика вызывает к, любое использование tell сценарий to, сценарий's, или my, эквивалентный tell me to.

  2. Первая заглавная роль обработчика.

  3. Значение для первого параметра.

  4. Для каждого дополнительного параметра Вы также перечисляете следующее:

    Следующая заглавная роль, сопровождаемая двоеточием и значением для того параметра. Значение может быть любым допустимым выражением.