Lingo — многословный объектно-ориентированный (ОО) язык сценариев , разработанный Джоном Х. Томпсоном для использования в Adobe Director (ранее Macromedia Director). Lingo используется для разработки настольных приложений , интерактивных киосков , CD-ROM и контента Adobe Shockwave . [1] [2]
Lingo — основной язык программирования на платформе Adobe Shockwave, которая доминировала на рынке интерактивных мультимедийных продуктов в 1990-х годах. [3] В 1990-х годах с помощью Lingo были разработаны различные графические приключенческие игры , включая The Journeyman Project , Total Distortion , Mia's Language Adventure , Mia's Science Adventure и серию Didi & Ditto . Сотни бесплатных онлайн-видеоигр были разработаны с использованием Lingo и опубликованы на таких сайтах, как Miniclip и Shockwave.com.
Lingo можно использовать для создания пользовательских интерфейсов, для работы с растровой графикой , векторной графикой и трехмерной компьютерной графикой , а также для решения других задач обработки данных. [4] [5] Lingo поддерживает специализированный синтаксис для обработки изображений и трехмерной обработки объектов. [6] Трехмерные сетки также можно создавать «на лету» с помощью Lingo. [6]
Lingo был изобретен Джоном Х. Томпсоном в MacroMind в 1989 году и впервые выпущен с Director 2.2. Джефф Таннер разработал и протестировал Lingo для Director 2.2 и 3.0, создал пользовательские XObjects для различных производителей медиаустройств, примеры расширения языка с использованием XFactory, включая интерфейс прикладного программирования (API) XFactory, и написал начальные руководства по использованию Lingo. Дэйв Шилдс протестировал и задокументировал Object-based Lingo для Director 3.13 и 4.0. Он запускал скрипты сборки для создания еженедельных релизов для тестирования, создал Macromedia KnowledgeBase, создал примеры того, как писать плагины Lingo XTRA на C++, и собрал диски Golden Master Macromedia Director, которые были отправлены на дубликатор.
Lingo был быстро принят растущим мультимедийным сообществом в 1990-х годах и уже популярным продуктом Director. Первоначально около 90% пользователей использовали только 10% функций Lingo; в основном go to the frame
авторы мультимедийных руководств и презентаций. [ необходима цитата ] Однако 10% пользователей были разработчиками игр [ необходима цитата ] , которые проявили более широкий интерес к остальным 90% его возможностей, включая собственные расширения функций, создавая свои собственные XFactories/XObjects. Проект Journeyman является ярким примером этого.
Lingo встроен в Adobe Director и может быть добавлен в качестве скриптов на объекты или на временную шкалу. Lingo — это язык объектно-ориентированного программирования (ООП), который поддерживает многословный синтаксис типа Smalltalk , точечный синтаксис ОО и наследование.
Когда Lingo был создан, был разработан подробный синтаксис, имитирующий разговорный язык, чтобы было легко для новых пользователей. Пользователи могли писать предложения в стиле HyperTalk, например:
если видимость спрайта 5 то переходим к кадру
В операторах go to «to» является необязательным, и в отличие от других языков программирования операторы go ссылаются на кадры в Director's Score, а не на конкретные строки кода.
Lingo изначально был также очень надежным, предоставляя генерацию объектов через понятие factory
, называемое , что привело к расширяемости языка через внешние фабрики (XFactories) или XObjects. Для Director 3.13 и более поздних версий расширяемость происходила через другой тип подключаемого модуля, называемый XTRA, основанный на модели компонентных объектов Microsoft (COM).
Хотя по-прежнему возможно использование подробного синтаксиса, текущая версия языка полностью поддерживает объектно-ориентированный точечный синтаксис, так что код больше похож на стандартные языки программирования, такие как JavaScript или C++ .
Эквивалент в новом стиле написания сценариев будет таким:
если спрайт ( 5 ). видимый тогда _movie . перейти ( _movie . кадр )
В этом формате используются элементы модели Director Object Model, представленной в Director MX 2004. Синтаксис в предыдущих версиях выглядел так:
если спрайт ( 5 ). видимый , то переходим к кадру
В Director есть 4 типа скриптов Lingo, каждый из которых имеет определенную цель. Каждый тип скрипта может быть добавлен к определенным типам совместимых объектов.
Поведение и родительские скрипты поощряют хорошее объектно-ориентированное программирование. Сценарии фильмов не так ориентированы на ООП. Однако их все равно можно использовать для создания обработчиков черного ящика , где другие объекты могут вводить необработанные данные и получать ответы обратно, не зная о внутренней работе ящика. Использование сильных сторон и простоты использования методологии программирования Director с преимуществами ООП создает мощную и быструю среду программирования.
Lingo поддерживает наследование объектов с помощью немного своеобразной системы: скрипт может иметь ancestor
свойство, которое ссылается на другой объект (обычно также скрипт, хотя другие объекты, такие как члены каста, также могут быть предками). Свойства и методы предка наследуются родителем. Скрипты поведения также являются своего рода предком спрайтов, к которым они прикреплены, поскольку к свойствам и методам поведения можно получить доступ по ссылке на сам спрайт. В этом случае это своего рода множественное наследование , поскольку один спрайт может иметь несколько поведений.
Lingo 3.0 также можно было расширять с помощью внешних фабрик (XFactories) или XObjects (позже замененных Lingo Xtras ), которые предоставляли программные расширения для Director. Например, управление внешними медиаустройствами, такими как CD-ROM и видеомагнитофоны, через Macintosh SerialPort. XObject API был открыто доступен разработчикам и производителям медиаустройств, что добавило популярности и универсальности Lingo. Macromind очень активно позиционировал XObject API как стандарт для внешних медиаустройств для совместной работы через Lingo; и его интерес как стандарта привлек большое внимание со стороны известных и растущих компаний-производителей медиапродуктов через специальную группу под названием Multimedia Association.
Начиная с версии Director 4.0, Lingo стал расширяемым с помощью нового улучшенного класса внешнего плагина под названием Xtras. Xtras были разработаны на языке C++ с использованием Microsoft Component Object Model (COM). Стандартизация с COM помогла привлечь разработчиков к созданию рынка для таких плагинов.
Imaging Lingo был представлен в Director 8.0 и позволил разработчикам писать высокопроизводительные команды для обработки изображений, используя простой синтаксис. Есть некоторые сходства с функциями приложений для работы с изображениями (например, Photoshop ), которые упрощают создание динамических визуальных эффектов на основе кода. Обработка изображений также была добавлена в ActionScript 3.0 с классом BitmapData. Поскольку он включал более сложные команды, Director также был обновлен, чтобы разрешить преобразование между объектом BitmapData и его собственными объектами Image.
Director 8.5 представил движок DirectX 3D, который можно было заскриптовать с помощью Lingo. Lingo был существенно обновлен для поддержки новых 3D-объектов и теперь включает полнофункциональный набор 3D-команд. Также была создана Xtra для использования движка Havok 3D Physics, а позднее и движка AGEIA PhysX в Director 11.
Эти другие языки, возможно, не так известны, как язык Macromedia. Однако в Великобритании сохраняется юридическая аномалия, поскольку торговая марка слова «Lingo» принадлежит Linn Smart Computing .