Lingo - это подробный объектно-ориентированный (OO) язык сценариев, разработанный Джоном Х. Томпсоном для использования в Adobe Director (бывший директор Macromedia). Lingo используется для разработки настольных прикладного программного обеспечения, интерактивных киосков, CD-ROM и содержимого Adobe Shockwave.
Lingo - это основной язык программирования на платформе Adobe Shockwave, которая доминировала на рынке интерактивных мультимедийных продуктов в 1990-х годах. Различные графические приключенческие игры были разработаны с Lingo в течение 1990-х годов, включая The Journeyman Project, Total Distortion, Mia's Language Adventure, Mia's Science Adventure и сериал Didi Ditto. Сотни бесплатных онлайн-игр были разработаны с использованием Lingo и опубликованы на таких сайтах, как Miniclip и Shockwave.com.
Lingo можно использовать для создания пользовательских интерфейсов, для управления растровой графикой, векторной графикой и 3D компьютерной графикой и других задач обработки данных.. Lingo поддерживает специализированный синтаксис для обработки изображений и манипулирования трехмерными объектами. 3D-сетки также можно создавать «на лету» с помощью Lingo.
Lingo был изобретен Джоном Х. Томпсоном на MacroMind в 1989 году и впервые выпущен вместе с Director 2.2. Джефф Таннер разработал и протестировал Lingo для Director 2.2 и 3.0, создал пользовательские объекты XObjects для различных производителей мультимедийных устройств, примеры языковых расширений с использованием XFactory, включая интерфейс прикладного программирования XFactory (API), и написал начальные руководства о том, как используйте Lingo. Дэйв Шилдс протестировал и задокументировал Object-based Lingo для Director 3.13 и 4.0. Он запускал сценарии сборки для создания еженедельных выпусков для тестирования, создал Macromedia KnowledgeBase, создал примеры написания Lingo XTRA подключаемых модулей на C ++ и собрал золотые мастер-диски Macromedia. Директор, отправленные в копировальный аппарат.
Lingo был быстро принят растущим мультимедийным сообществом в 1990-х годах и стал уже популярным продуктом Director. Первоначально около 90% пользователей использовали только 10% функций Lingo; в первую очередь переходят в кадр
авторами мультимедийных учебных пособий и презентаций. Однако 10% пользователей были разработчиками игр, которые проявляли более широкий интерес к остальным 90% его возможностей, включая собственные расширения функций, создавая свои собственные XFactories / XObjects. Проект "Подмастерье" - яркий тому пример.
Lingo встроен в Adobe Director и может быть добавлен в виде скриптов на объекты или на шкалу времени. Lingo - это язык объектно-ориентированного программирования (ООП), который поддерживает подробный синтаксис, подобный Smalltalk, объектно-ориентированный синтаксис и наследование.
Когда Lingo был создан, подробный синтаксис был разработан для имитации разговорной речи, так что это было бы легко для новых пользователей. Пользователи могут писать предложения, подобные HyperTalk, например:
, если спрайт 5 виден, переходить к кадру
В операторах go to знак «to» является необязательным и, в отличие от других языков программирования, Операторы go ссылаются на кадры в рейтинге режиссера, а не на конкретные строки кода.
Lingo также изначально был очень надежным, предоставляя создание объектов с помощью понятия factory
, что привело к расширяемости языка с помощью внешних фабрик (XFactories) или XObjects. Для Director 3.13 и более поздних версий расширяемость осуществлялась с помощью подключаемого модуля другого типа, называемого XTRA, на основе модели компонентных объектов Microsoft (COM).
Хотя по-прежнему можно использовать подробный синтаксис, текущая версия языка полностью поддерживает объектно-ориентированный синтаксис с точкой, так что код больше похож на стандартные языки программирования, такие как JavaScript или C ++.
Эквивалент в новом стиле сценария будет:
if sprite (5).visible then _movie.go (_movie.frame)
В этом формате используются элементы объектная модель Director, представленная в Director MX 2004. Синтаксис в предыдущих версиях был бы таким:
если sprite (5).visible, то переходите к кадру
Существует 4 типа Lingo скрипты в Director, каждый из которых предназначен для определенной цели. Каждый тип сценария может быть добавлен к определенным типам совместимых объектов.
Поведение и родительские скрипты способствуют хорошему объектно-ориентированному программированию. Сценарии фильмов не так ориентированы на ООП. Однако их все еще можно использовать для создания обработчиков «черного ящика», где другие объекты могут вводить необработанные данные и получать ответы обратно, не зная внутренней работы ящика. Использование сильных сторон и простоты использования методологии программирования Director с преимуществами ООП создает мощную и быструю среду программирования.
Lingo поддерживает наследование объекта с помощью немного своеобразной системы: сценарий может иметь свойство предка
, которое ссылается на другой объект (обычно также script, хотя другие объекты, такие как элементы приведения, также могут быть предками). Свойства и методы предка наследуются родителем. Скрипты поведения также являются своего рода предками спрайтов, к которым они прикреплены, поскольку доступ к свойствам и методам поведения можно получить по ссылке на сам спрайт. В данном случае это разновидность множественного наследования, так как один спрайт может иметь несколько вариантов поведения.
Lingo 3.0 также можно было расширять с помощью внешних фабрик (XFactories) или XObjects (позже замененных на Lingo Xtras ), которые обеспечивали программные расширения к директору. Например, управление внешними носителями, такими как проигрыватели компакт-дисков и видеолент, через последовательный порт Macintosh. XObject API был открыт для разработчиков и производителей мультимедийных устройств, что повысило популярность и универсальность Lingo. Macromind очень активно позиционировал XObject API как стандарт для внешних мультимедийных устройств для совместной работы через Lingo; и его интерес в качестве стандарта получил широкое участие со стороны известных и быстрорастущих компаний, выпускающих медиа-продукты, через специальную группу под названием Мультимедийная ассоциация.
Начиная с версии Director 4.0, Lingo можно было расширять за счет нового улучшенного класса внешних плагинов под названием Xtras. Xtra были разработаны на 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.