Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Американская радиостанция SuperTalk является языком сценариев, используемым в SuperCard. SuperTalk - это потомка HyperTalk.
the American radio station
SuperTalk is the scripting language used in SuperCard. SuperTalk is a descendant of HyperTalk.
Дополнительный синтаксис
Одной из самых мощных функций, которые SuperCard добавляет в язык HyperTalk, являются свойства пользователя. В случае, когда HyperTalk имел фиксированный набор свойств на своих объектах, скрипты SuperCard могут использовать команду define property propName для добавления новых свойств к кнопкам и полям. Эти свойства могут содержать произвольный текст (включая числа и ссылки на объекты, которые также представлены с помощью текста в xTalks), и даже сбросы целых файлов. SuperTalk предоставляет несколько вариаций команд файлов ответа и ответа HyperTalk, которые позволяют выбрать несколько элементов из списка, выбрать иконку из всех доступных икон, выбрать инструмент MIDI для воспроизведения звука или выбрать файл поддерживаемого формата изображения (включая предварительный просмотр) или диски и папки. В отличие от диалогов HyperTalk, диалоги SuperTalk отвечают и спрашивают не все изменяют размер динамически, чтобы содержать больше текста. Однако, поскольку SuperCard позволяет иметь карты (т.е. "страницы") в окнах произвольных типов, можно легко создать свой собственный диалог, который достаточно велик. SuperTalk также имеет команду оповещения, которая отображает стандартные окна и листы оповещения системы, включая стандартные иконки системы. Для повышения читабельности в сложных условных условиях доступна команда переключения, а также могут быть записаны различные типы носителей (например, захват экрана карты, звук и фильмы QuickTime). Существует также команда клонирования, которая эквивалентна копированию и вставке, но оставляет вкладку без изменений, команда перечисления, которая создает глобальные переменные с последовательными целыми значениями, и недавно была добавлена знакомая команда MetaCard для итерации через списки. SuperCard также предлагает обработку исключений с использованием инструкции try с соответствующей командой throw.
One of the most powerful features SuperCard adds to the HyperTalk language is user properties. Where HyperTalk had a fixed set of properties on its objects, SuperCard scripters can use the define property propName command to add new properties to buttons and fields. These properties can contain arbitrary text (including numbers and object references, which are also represented using text in xTalks), and even dumps of entire files. SuperTalk provides several variations on HyperTalk's answer and answer file commands, which let one choose several items from a list, choose an icon from all available icons, pick a MIDI instrument to play sound with, or choose a file of a supported image format (including a preview), or disks and folders. Different from HyperTalk's dialogs, SuperTalk answer and ask dialogs do not all resize dynamically to hold more text. However, since SuperCard allows having cards (i. e. "pages") in windows of arbitrary types, one can easily build one's own dialog that is large enough. SuperTalk also has an alert command that displays standard system alert windows and sheets, including standard system icons. A switch command is available for more readability in complex conditionals, and various types of media can be recorded (e. g. screen grabs of a card, sound and QuickTime movies). There is also a clone command that is equivalent to copying and pasting but leaves the clipboard unchanged, an enumeration command that creates global variables with sequential integer values, and recently MetaCard's familiar command for iterating through lists was added. SuperCard also offers exception handling using a try statement with associated throw command.
Различия и несовместимости
SuperTalk был поставлен с дебгугером на уровне исходного кода намного раньше, чем HyperCard, но дебгугер SuperTalk является модальным окном и не позволяет устанавливать точки прерывания, просто нажимая рядом с строкой. Для входа в отладчик используется специальная команда trace, где можно просмотреть текущую строку кода, выполнить команды, оценить выражения и т. д. Из-за этого, дебгугер SuperTalk должен быть включен, вместо того, чтобы быть доступным сразу же, когда происходит ошибка скрипта. Команда визуальных эффектов немного строже в своем синтаксисе, но в обмен поддерживает многочисленные дополнительные эффекты перехода, включая переходы QuickTime и специальные модули вставки (сохраняемые в ресурсах форка данных типа TRAN). Добавлен специальный вид внешней команды, которая не разгружается и может владеть окном. Его тип - XRTN. Он заметно отличается от протокола XCMD, а также не использует протокол xWindoid, позже введенный для добавления окон в HyperTalk. SuperTalk также использует команду запуска для запуска внешних приложений, отличную от команды open HyperTalk, которую SuperTalk использует для открытия своих различных окон (HyperTalk отклонился здесь, используя ).
SuperTalk came with a source level debugger well ahead of HyperCard, but the SuperTalk debugger is a modal window and does not let you set breakpoints by just clicking beside a line. A special trace command is used to enter the debugger, where one can then view the currently executing line of code, execute commands, evaluate expressions etc. Because of that, the SuperTalk debugger has to be explicitly turned on instead of being available right away when a script error occurs. The visual effect command is a little stricter in its syntax, but in exchange supports numerous additional transition effects, including QuickTime transitions and special plug in modules (stored in data fork resources of type TRAN). A special kind of external command that does not get unloaded and can own a window has been added. Its type is XRTN. It differs noticeably from the XCMD protocol, and also doesn't use the xWindoid protocol later introduced for adding windows to HyperTalk. SuperTalk also uses a launch command for starting up external applications, different from HyperTalk's open command, which SuperTalk uses for opening its various windows (HyperTalk deviated here by using ).
Более богатая модель объекта
Конечно, SuperTalk также раскрывает расширенную объектную модель SuperCard, позволяя создавать слайдеры, скроллеры, индикаторы прогресса и другие шкалы, скриптовая краска и рисование графики, а также собственные списочные ящики и первоклассные объекты меню. Также доступны несколько окон с несколькими стилями (модальная панель, немодальная, прокрутка, изменяемый размер, плавающие палитры), а фокус и область активации могут быть изменены под полным контролем скрипта.
Of course SuperTalk also exposes SuperCard's expanded object model, making it possible to create sliders, scroll bars, progress indicators and other scales, scriptable paint and draw graphics, and native listbox and first class menu objects. Multiple windows with several styles (modal panel, non modal, scrolling, resizable , floating palettes) are also available and focus and activation scope can be modified under full script control.
Отклонения
Некоторые части SuperCard отклоняются от английского аналога HyperTalk. Это включает в себя команду "Alert", которая пыталась слишком сильно подражать немного неуклюжему синтаксису команды "Reply". Кроме того, похоже, что с течением времени ряд XCMD просто были встроены в движок как встроенные команды, сохраняя не очень запоминающийся синтаксис вызова обработчика. Самый очевидный пример - функция фильма, где фильмы "невидимо прикреплены" к окну, вместо того, чтобы быть реализованными в качестве реальных элементов управления, таких как слайдеры или другие элементы. Существуют также некоторые свойства, которые контролируют поведение общего приложения, которые являются один к одному переводом базовых системных API, например, для использования "менеджера внешнего вида" (двигателя тематики в Mac OS 9).
Some parts of SuperCard deviate from the English like ness of HyperTalk. This includes the alert command, which tried to emulate the slightly awkward syntax of the answer command a bit too much. Also, it seems that over time, a number of XCMDs were simply rolled into the engine as built in commands, maintaining the not very memorable handler call syntax. The most obvious case here is the movie function, where movies are kind of "invisibly tacked on" to a window instead of being implemented as real controls like sliders or other elements. There are also some properties that control general application behaviour that are one to one translations of the underlying system APIs, e. g. for using "appearance manager" (the theming engine in Mac OS 9).