Поскольку busy
является термином, специфичным для вашего приложения, ему должно предшествовать tell
или using terms from
, чтобы сделать термин известным в этот момент в коде. Любой из них будет работать:
tell application "MyApplication" to busy
tell application "MyApplication"
busy
end tell
using terms from application "MyApplication"
busy of application "MyApplication"
end using terms from
AppleScript анализирует слева направо и должен знать, каковы действительные термины, прежде чем он сможет их анализировать. Он не пропускает до конца busy of application "MyApplication"
, чтобы выяснить, как разобрать начало выражения. Если бы MyApplication имел термин busy of
, это полностью изменило бы значение этого выражения и привело бы к парадоксу: of
больше не было бы ключевым словом, используемым для создания спецификаторов объекта, что означает, что оно не получало бы терминологию из MyApplication, что означает будет ключевым словом of
, а получит терминологию из приложения ... до бесконечности.
Вам может быть интересно, почему некоторые свойства приложения, такие как name
, version
и running
, работают без введения терминологии приложения. Они работают, потому что они определены глобальной терминологией системы и не относятся к вашему приложению.
Обратите внимание, что 's
притяжательный оператор не вводит терминологию, как tell
, так что это тоже не работает (если только вы не предшествуете с tell
или using terms from
) :
application "MyApplication"'s busy