Библиотеки с помощью Сценария Загрузки

Индивидуалисты OS X v10.9 (AppleScript 2.3) представляют встроенную поддержку библиотек сценария, которые являются сценариями, содержащими обработчики, которые могут быть совместно использованы среди многих сценариев. Сценарии, которые должны работать на более старых версиях OS, могут совместно использовать обработчики между использованием сценариев load script, как описано здесь.

Сохранение и загрузка библиотек обработчиков

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

Например, следующий сценарий содержит два обработчика: areaOfCircle и factorial:

-- This handler computes the area of a circle from its radius.
-- (The area of a circle is equal to pi times its radius squared.)
on areaOfCircle from radius
    -- Make sure the parameter is a real number or an integer.
    if class of radius is contained by {integer, real}
        return radius * radius * pi -- pi is predefined by AppleScript.
    else
        error "The parameter must be a real number or an integer"
    end if
end areaOfCircle
 
 
-- This handler returns the factorial of a number.
on factorial(x)
    set returnVal to 1
    if x > 1 then
        repeat with n from 2 to x
            set returnVal to returnVal * n
        end repeat
    end if
    return returnVal
end factorial

В Редакторе сценариев сохраните сценарий как скомпилированный Сценарий (который имеет расширение scpt) или пакет сценария (расширение scptd) и назовите его «NumberLib».

После сохранения сценария как скомпилированный сценарий другие сценарии могут использовать load script команда для загрузки его. Например, следующий сценарий загружает скомпилированный сценарий NumberLib.scpt, хранение получающегося script объект в переменной numberLib. Это тогда выполняет вызовы обработчика в a tell оператор, предназначающийся script объект. Скомпилированный сценарий должен существовать в указанном расположении для этого сценария для работы.

set numberLibrary to (load script file "NumberLib.scpt")
 
tell numberLibrary
    factorial(10)             --result: 3628800
    areaOfCircle from 12      --result: 452.38934211693
end tell