СуперТок
SuperTalk — это язык сценариев, используемый в SuperCard . SuperTalk является потомком HyperTalk .
Расширения базового языка HyperTalk
[ редактировать ]Дополнительный синтаксис
[ редактировать ]Одна из самых мощных функций, которую SuperCard добавляет в язык HyperTalk, — это свойства пользователя . Там, где HyperTalk имел фиксированный набор свойств своих объектов, скриптеры SuperCard могут использовать define property propName
команда для добавления новых свойств к кнопкам и полям. Эти свойства могут содержать произвольный текст (включая числа и ссылки на объекты, которые в xTalks также представлены с помощью текста) и даже дампы целых файлов.
SuperTalk предоставляет несколько вариантов HyperTalk. answer
и answer file
команды, которые позволяют выбрать несколько элементов из списка, выбрать значок из всех доступных значков, выбрать MIDI-инструмент для воспроизведения звука или выбрать файл поддерживаемого формата изображения (включая предварительный просмотр), диски и папки. В отличие от диалоговых окон HyperTalk, не все диалоговые окна ответов и вопросов SuperTalk динамически изменяют размер, чтобы вместить больше текста. Однако, поскольку SuperCard позволяет размещать карточки (то есть «страницы») в окнах произвольных типов, можно легко построить собственный достаточно большой диалог. SuperTalk также имеет alert
команда, которая отображает стандартные окна и листы системных предупреждений, включая стандартные системные значки.
Команда переключения доступна для большей читаемости в сложных условных выражениях, а также можно записывать различные типы мультимедиа (например, снимки экрана карты, звук и фильмы в формате QuickTime). Существует также clone
команда, эквивалентная копированию и вставке, но оставляющая буфер обмена неизмененным; команда перечисления, создающая глобальные переменные с последовательными целочисленными значениями; недавно знакомая команда MetaCard. repeat for each item x
добавлена команда для перебора списков.
SuperCard также предлагает обработку исключений с помощью try
заявление со связанным throw
команда.
Различия и несовместимости
[ редактировать ]SuperTalk поставляется с отладчиком уровня исходного кода, намного опережающим HyperCard, но отладчик SuperTalk представляет собой модальное окно и не позволяет устанавливать точки останова, просто щелкнув рядом со строкой. Специальный trace
Команда используется для входа в отладчик, где затем можно просмотреть исполняемую в данный момент строку кода, выполнить команды, оценить выражения и т. д. Из-за этого отладчик SuperTalk должен быть явно включен, а не доступен сразу при ошибке сценария. происходит.
The visual effect
Команда немного более строга по своему синтаксису, но взамен поддерживает множество дополнительных эффектов перехода, включая переходы QuickTime и специальные подключаемые модули (хранящиеся в ресурсах ветки данных типа TRAN
). Добавлен особый вид внешней команды, которая не выгружается и может владеть окном. Его тип XRTN
. Он заметно отличается от протокола XCMD, а также не использует протокол xWindoid, появившийся позднее для добавления окон в HyperTalk.
SuperTalk также использует launch
команда запуска внешних приложений, отличная от команды HyperTalk open
команда, которую SuperTalk использует для открытия различных окон (здесь HyperTalk отклонился, используя go to stack "foo" in new window
).
Более богатая объектная модель
[ редактировать ]Конечно, SuperTalk также предоставляет расширенную объектную модель SuperCard, позволяющую создавать ползунки, полосы прокрутки, индикаторы прогресса и другие шкалы, графику рисования и рисования с возможностью использования сценариев, а также собственные списки и первоклассные объекты меню. Также доступны несколько окон с несколькими стилями (модальная панель, немодальный, прокрутка, изменение размера..., плавающие палитры), а фокус и область активации можно изменить под полным контролем сценария.
Отклонения
[ редактировать ]Некоторые части SuperCard отличаются от английского языка HyperTalk. Это включает в себя alert
команда, которая пыталась имитировать немного неуклюжий синтаксис команды answer
командовать слишком много. Кроме того, похоже, что со временем некоторое количество XCMD было просто внесено в движок как встроенные команды, сохранив не очень запоминающийся синтаксис вызова обработчиков. Наиболее очевидным случаем здесь является movie
функция, в которой фильмы как бы «невидимо прикрепляются» к окну, а не реализуются как настоящие элементы управления, такие как ползунки или другие элементы. Существуют также некоторые свойства, управляющие общим поведением приложения, которые представляют собой однозначное преобразование базовых системных API, например, для использования «менеджера внешнего вида» (движка тем в Mac OS 9).