Adobe Flash
Adobe Flash (ранее Macromedia Flash), или просто Flash (/flæʃ/, по-русски часто пишут флеш или флэш) — мультимедийная платформа компании Adobe для создания веб-приложений или мультимедийных презентаций. Широко используется для создания рекламных баннеров, анимации, игр, а также воспроизведения на веб-страницах видео- и аудиозаписей. Платформа включает в себя ряд средств разработки, прежде всего Adobe Flash Professional и Adobe Flash Builder (ранее Adobe Flex Builder); а также программу для воспроизведения flash-контента — Adobe Flash Player, хотя flash-контент умеют воспроизводить и многие плееры сторонних производителей. Например, SWF-файлы можно просматривать с помощью свободных плееров Gnash или swfdec, а FLV-файлы воспроизводятся через мультимедийные проигрыватели Quicktime, Windows Media Player и различные проигрыватели в UNIX-подобных системах при наличии соответствующих плагинов. Adobe Flash позволяет работать с векторной, растровой и ограниченно с трёхмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для КПК и других мобильных устройств выпущена специальная «облегчённая» версия платформы Flash Lite, функциональность которой ограничена в расчёте на возможности мобильных устройств и их операционных систем. Стандартным расширением для скомпилированных flash-файлов (анимации, игр и интерактивных приложений) является .SWF (Shockwave Flash или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV (при этом Flash в данном случае используется только как контейнер для видеозаписи). Расширение FLA соответствует формату рабочих файлов в среде разработки.
Технологии
Flash Player представляет собой виртуальную машину, на которой выполняется загруженный из Интернета код flash-программы. В основе анимации во Flash лежит векторный морфинг, то есть плавное «перетекание» одного ключевого кадра в другой. Это позволяет делать сложные мультипликационные сцены, задавая лишь несколько ключевых кадров. Производительность Flash Player при воспроизведении анимации в несколько раз превышает производительность виртуальной машины Javascript в браузерах, поддерживающих предварительный стандарт HTML5, хотя во много раз уступает приложениям, работающим вообще без использования виртуальных машин. Flash использует язык программирования ActionScript, основанный на ECMAScript. 1 мая 2008 г. компания Adobe объявила о начале проекта Open Screen Project. Цель проекта — создание общего программного интерфейса для персонального компьютера, мобильных устройств и бытовой электроники, что означает одинаковое функционирование одного приложения под всеми перечисленными видами устройств. В рамках проекта: Снимаются ограничения на использование спецификаций SWF и FLV/F4V. Публикуются API для портирования Adobe Flash Player на различные устройства. Упраздняются платные лицензии для Adobe Flash Player и Adobe AIR на устройствах. Ближайший их релиз будет бесплатным. В поддержку проекта и распространение платформы Flash на мобильных устройствах на данный момент выступило 58 компаний, среди которых AMD, ARM, Google, HTC, Intel, Motorola, Nokia, NVIDIA, QNX, Sony Ericsson и др. Flash Player портирован на мобильную платформу Android, выпущены мобильные устройства с аппаратным ускорением flash-приложений (включая AIR-приложения). Некоторые производители ПО для мобильных устройств пытаются заменить или ограничить распространение Flash на свои новые мобильные платформы: Apple на HTML5 для iPhone, iPod touch и iPad Microsoft на Silverlight для Windows Phone 7 Oracle на JavaFX
История
Технология векторного морфинга применялась задолго до Flash. В 1986 году была выпущена программа Fantavision, которая использовала эту технологию. В 1991 году на этой технологии была выпущена игра Another World, а двумя годами позже — Flashback. Разработка Flash была начата компанией FutureWave, создавшей пакет анимации FutureSplash Animator. В 1996 году FutureWave была приобретена компанией Macromedia, которая переименовала FutureSplash Animator в Flash. Под этим наименованием платформа продолжает развиваться и поныне (хотя после того, как в 2005 году компания Macromedia была поглощена Adobe, Macromedia Flash стал официально называться Adobe Flash).
3D-движки
Существуют 3D движки, использующие в качестве основы Flash: Papervision3D (англ.)Самый известный Open Source движок. Векторная прорисовка по треугольникам. Away3D (англ.) — Создан Александром Задорожным из Киева на основе проекта Papervision3D. В данный момент — ведущий Open Source движок. Также векторная прорисовка. Sandy (англ.) — В использовании ещё проще, чем Papervision3D. Open Source. Также векторная прорисовка. FFilmation AS3 Flash Isometric Engine (англ.) — Изометрический движок. Open Source. Infinity 3D Engine — движок с динамическим BSP [4]. Разрабатывается энтузиастом из Санкт-Петербурга Алексеем Романовым. Игровая платформа Alternativa Platform — Платформа для трёхмерных игр, разрабатываемая группой из Перми. За флеш отвечает Антон Волков. Векторная прорисовка по треугольникам. На данной платформе создана игра Танки Онлайн. ZenBullets Flash Isometric 3D Game Engine — изометрическая игровая платформа. KEDR ENGINE — 3DFlash движок. Разрабатывается энтузиастом из Москвы Андреем Кузнецовым. До 2011 года производительность flash была недостаточной для отрисовки сложных 3D-сцен в реальном времени. Сцены выглядели значительно менее детальными и правдоподобными, в сравнении со сценами, отображаемыми с помощью современных 3D-движков, основанных на другой технологической платформе (как например «Unreal Engine»). Это было связано с тем, что прежние версии flash не позволяли задействовать 3D-возможности современной видеокарты. Ситуация изменилась в конце 2011 года, когда Adobe выпустила flash 11 с поддержкой аппаратного графического ускорения. Это даёт возможность отрисовывать сцены с гораздо большим количеством деталей и отображать высококачественные графические эффекты, ранее недоступные из-за своей ресурсоёмкости. При этом следует отметить, что многие возможности, реализованные в наиболее современных видеокартах, по прежнему остаются недоступными для флеша.
Недостатки
Основной недостаток flash-приложений — чрезмерная нагрузка на центральный процессор, связанная с неэффективностью виртуальной машины Flash Player. Хотя следует отметить, что в некоторых случаях имеет место и недостаточная оптимизация flash-приложений их разработчиками, использование так называемых «генераторов» flash-приложений. Второй важный недостаток flash-приложений заключается в недостаточном контроле ошибок, что приводит к частым отказам как самих приложений, так, в некоторых случаях, и всего браузера. Возможность flash-приложений нарушать работу всего браузера неоднократно вызывала критику со стороны разработчиков браузеров. Ещё один недостаток, характерный для всех виртуальных машин, заключается в том, что не всегда есть возможность запустить flash-приложение, либо это связано с некоторыми трудностями. Например, некоторые пользователи или администраторы отключают в настройках браузеров flash-контент, что связано с экономией системных ресурсов, избавлением от надоевшей рекламы и информационной безопасностью (например, была обнаружена угроза перехвата flash-приложением содержимого буфера обмена). Этот недостаток делает технологию Flash менее универсальной и ограничивает её применение в веб-приложениях критической важности. Четвёртый важный недостаток заключается в том, что использование Flash для размещения текстовой информации затрудняет её индексирование поисковыми системами. И хотя в принципе определённая система индексирования текста внутри swf-файлов была создана и внедрена Google и Yahoo ещё в 2008 году, но доля сайтов, целиком созданных на Flash, остаётся небольшой. Приложения Flash также не могут использовать правую кнопку мыши, зарезервированную разработчиками браузеров для настроек самого Flash. Как редактор, Adobe Flash CS5 не может конвертировать созданные в нём векторные изображения в форматы другого типа: .ai или .cdr, что было бы крайне полезным.
Закрытость Спецификация SWF версии 4 была открыта, но описания последующих версий продавались только с подпиской о неразглашении, и их было запрещено использовать для создания проигрывателей Flash. В мае 2008 года Adobe Systems объявила об открытии спецификаций[уточнить] SWF и видео контейнера FLV для использования на значительно более мягких условиях, как часть проекта «Open Screen Project», ориентированного на создание общей среды Flash на всех устройствах. Рэй Вальдес (Ray Valdes) из Gartner, Inc. считает одной из причин открытия спецификаций конкуренцию со стороны Microsoft Silverlight, однако представитель Adobe Дэйв МакАллистер (Dave McAllister) заявил, что это не так. Однако запатентованные кодеки, используемые в FLV, принадлежат не Adobe, а скачанную спецификацию, в которой нет, например, описания протокола RTMP (20 января 2009 Adobe объявила, что опубликует его в первой половине 2009), нельзя распространять и переводить. Flash Player остаётся проприетарным, хотя Adobe обещала сделать использование его на мобильных платформах бесплатным. Осенью 2011 года, компания Adobe заявила о прекращении поддержки мобильных платформ. Разработчик свободного декодера Swfdec Бенджамин Отте (Benjamin Otte) написал, что в открытой спецификации нет ничего, чего бы ещё не было известно благодаря реверс-инжинирингу, хотя официальная спецификация может быть понятнее для новичков и полезна при возникновении вопросов о легальности библиотеки. О том же говорят и разработчики Gnash. Они также считают возможной причиной этого частичного открытия спецификаций успехи свободных декодеров SWF и конкурирующего проприетарного формата Silverlight. В феврале 2009 компания Adobe в рамках проекта Open Screen Project опубликовала информацию о снятии ограничений на использование форматов SWF и FLV/F4V, а также протоколов AMF и Mobile Content Delivery Protocol.
Уязвимости В реализациях Adobe Flash время от времени находят «дыры», позволяющие злоумышленникам производить разнообразные действия с системой. Так, например, в октябре 2008 года была найдена уязвимость, позволяющая удалённо контролировать веб-камеру и микрофон.
Альтернативы Прямым конкурентом Flash является технология Silverlight от Microsoft, лишёная всех недостатков Flash. Технология Java-апплетов также является альтернативой Flash в веб-приложениях, но значительно уступает в надёжности и простоте создания графики и анимации. В браузерах отдельные части Flash могут быть заменены посредством HTML 5, JavaScript (и AJAX), SVG.
История версий Flash Player
FuturePecoraro Animator (1995) предшественник Flash FutureSplash Animator (1995) начальная версия Flash Macromedia Flash Player 1 (Декабрь 1996) Macromedia Flash Player 2 (Июнь 1997) Первая версия с брендом Macromedia Поддержка векторов и движения, некоторых картинок и ограниченного аудио. Macromedia Flash Player 3 (31 мая 1998) Добавлена прозрачность, лицензировано сжатие MP3 Macromedia Flash Player 4 (15 июня 1999) Macromedia Flash Player 5 (24 августа 2000) Macromedia Flash Player 6 (версия 6.0.21.0, кодовое название Exorcist) (15 марта 2002) Поддержка Flash Remoting (Action Message Format) и Веб служб (SOAP) Поддержка потоковых аудио и видео (RTMP) Поддержка программ экранных считывателей для слабовидящих людей через Microsoft Active Accessibility Добавлены видеокодеки Sorenson Sparc Flash Video Macromedia Flash Player 7 (версия 7.0.14.0, кодовое название Mojo) (10 сентября 2003) Поддержка прогрессивного потокового аудио и видео (HTTP) Поддержка ActionScript 2.0, и объектно-ориентированного программирования для разработчиков Macromedia Flash Player 8 (версия 8.0.22.0, кодовое название Maelstrom) (13 сентября 2005) Поддержка изображений в GIF и PNG форматах Новый видеокодек (On2 VP6) Улучшена производительность Добавлены динамические фильтры такие, как «размытие» и «тень» Добавлена возможность загрузки/скачивания файлов Пиксельный рендеринг текста Новые правила безопасности для предотвращения небезопасных действий при выполнении Macromedia Flash Lite 1.0 и 1.1 Основано на Flash Player 4 Для мобильных устройств Macromedia Flash Lite 2.0 (Декабрь 2005) Основано на Flash Player 7 Для мобильных устройств Adobe Flash Player 9 (версия 9.0.15.0, кодовое название Zaphod) (Июнь 2006) предыдущее название Flash Player 8.5 Первая версия с брендом Adobe Новый скриптовый движок ECMAScript, ActionScript Virtual Machine AVM2. AVM сохранён для совместимости. Actionscript 3 через AVM2. E4X, который является новым подходом к синтаксическому анализу XML. Поддержка бинарных сетевых соединений. Поддержка регулярных выражений и пространства имён Виртуальная машина ECMAScript 4 пожертвована Фонду Mozilla и названа Tamarin. Adobe Flash Player 9 Update 1 (версия 9.0.28.0, кодовое название Marvin) (Ноябрь 2006) Поддержка полноэкранного режима. Adobe Flash Lite 2.1 (Декабрь 2006) Запускается через платформу BREW Adobe Flash Lite 3 (Анонсирована в Феврале 2007) Поддержка формата FLV Adobe Flash Player 9 Update 2 (версия Mac/Windows 9.0.47.0 и Linux 9.0.48.0, кодовое название Hotblack) (Июль 2007) Security Update Adobe Flash Player 9 Update 3 (версия 9.0.115.0, кодовое название Moviestar или Frogstar) (Декабрь 2007) H.264 AAC (HE-AAC, AAC Main Profile, and AAC-LC) Формат файла мультимедиа ISO Base (MPEG-4 Part 12) Adobe Flash Player 10 32-bit (версии для Windows, Linux и Mac; кодовое название Astro) (15 октября 2008) 3D Эффекты Различные фильтры и эффекты Расширенная схема размещения текста Улучшено API Рисования Улучшение производительности визуализации Медиа Speex Audio Codec RTMFP (Real Time Media Flow Protocol) Adobe Flash Player 10 64-bit Linux prerelease (16 декабря 2008) Версии для Windows и Mac вышли одновременно с релизверсией для Linux. Adobe Flash Player 10 64-bit Preview 3 для Windows, Mac и Linux (30 ноября 2010) Родная поддержка 64 битных браузеров без необходимости использования nswrapper. Adobe Flash Player 10 Update 1 Adobe Flash Player 10 Update 2 Adobe Flash Player 10 Update 3 (версия 10.3.181.14) (12 мая 2011) Adobe Flash Player 11 RC1 (версия 11.0.r1.129) ( 6 сентября 2011) В данной версии впервые осуществлена полная поддержка 64x-битных систем и браузеров на ОС Linux, Mac OS, Windows JPEG XR поддержка Adobe Flash Player 11 ( версия 11.0.1.152) ( 4 октября 2011)
См. также
Microsoft Silverlight Flash Lite Adobe Flex ActionScript Adobe Shockwave SWFTools
Назад: Adobe Flash