Открыть сервис

SWF-формат

SWF-формат (от англ. ShockWave Flash, позднее Small Web Format) — это формат файлов для векторной анимации, интерактивных приложений и игр, предназначенный для воспроизведения в среде Adobe Flash Player. Файлы SWF содержат векторную и растровую графику, аудио, видео, скрипты на языке ActionScript и могут проигрываться как в браузере, так и в автономном плеере. Формат был разработан компанией FutureWave Software, а затем развивался компанией Macromedia (позднее Adobe Systems). На протяжении конца 1990-х — 2010-х годов SWF был доминирующим форматом для веб-анимации, интерактивных баннеров, онлайн-игр и видеоплееров.

История

Создание и ранние годы (1993–1996)

Формат SWF берёт начало в 1993 году, когда компания FutureWave Software, основанная Джонатаном Геем и Робертом Тейтом, выпустила программу SmartSketch — векторный редактор для планшетов. В 1995 году, с учётом роста популярности Всемирной паутины, компания переориентировалась на создание анимации для веба. Результатом стал плеер FutureSplash Player, который воспроизводил файлы с расширением .spl. В декабре 1996 года компания Macromedia приобрела FutureWave Software, и продукт был переименован в Macromedia Flash. Формат файлов получил расширение .swf, что расшифровывалось как ShockWave Flash — в честь технологии Macromedia ShockWave для Director.

Эра Macromedia (1997–2005)

Под управлением Macromedia Flash стал быстро набирать популярность. В 1997 году вышла версия Flash 2, которая ввела поддержку растровых изображений и звука. В 1998 году Flash 3 добавил прозрачность и улучшенные возможности анимации. Ключевым этапом стал Flash 4 (1999) с поддержкой базового скриптового языка ActionScript, что позволило создавать интерактивные элементы. В 2000 году Flash 5 представил полноценный язык ActionScript, основанный на ECMAScript. Формат SWF к тому времени стал стандартом для веб-анимации: на нём работали баннеры, меню сайтов, рекламные ролики и первые браузерные игры.

В 2002 году Macromedia выпустила Flash Player 6 (MX), который поддерживал видео (формат Sorenson Spark) и более сложные сценарии. В 2003 году Flash MX 2004 (версия 7) ввёл ActionScript 2.0, объектно-ориентированное программирование и улучшенную работу с видео. К середине 2000-х годов SWF-файлы использовались на большинстве веб-сайтов, а Flash Player был установлен на более чем 98% персональных компьютеров с доступом в интернет.

Эпоха Adobe (2005–2017)

В 2005 году компания Adobe Systems приобрела Macromedia за 3,4 миллиарда долларов. Adobe продолжила развитие Flash, переименовав его в Adobe Flash. В 2006 году вышла версия Flash Player 9 с поддержкой ActionScript 3.0 — мощного объектно-ориентированного языка, который значительно ускорил выполнение скриптов. В 2007 году Adobe представила AIR (Adobe Integrated Runtime) — платформу для создания настольных приложений на основе SWF. В 2008 году Flash Player 10 добавил поддержку 3D-трансформаций и фильтров.

Однако к концу 2000-х годов формат SWF столкнулся с серьёзными вызовами. В 2007 году компания Apple отказалась включать поддержку Flash в мобильную операционную систему iOS, сославшись на проблемы с производительностью, безопасностью и энергопотреблением. В 2010 году Стив Джобс опубликовал открытое письмо «Thoughts on Flash», в котором раскритиковал технологию. В ответ Adobe начала продвигать HTML5 как альтернативу. В 2011 году Adobe объявила о прекращении разработки Flash Player для мобильных устройств, сосредоточившись на настольных версиях.

Закат и прекращение поддержки (2017–2020)

В 2017 году Adobe объявила о планах прекратить поддержку Flash Player к концу 2020 года. Основными причинами названы снижение популярности технологии, рост числа уязвимостей безопасности и переход на открытые веб-стандарты (HTML5, WebGL, WebAssembly). Крупные браузеры (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari) начали постепенно блокировать Flash-контент. 31 декабря 2020 года Adobe официально прекратила распространение и обновление Flash Player, а также удалила ссылки на загрузку с официального сайта. В январе 2021 года Flash Player начал блокировать воспроизведение SWF-файлов, выводя сообщение о завершении поддержки.

Технические характеристики

Структура файла

SWF-файл представляет собой бинарный поток данных, состоящий из заголовка и последовательности тегов. Заголовок содержит:

  • Сигнатуру (FWS — сжатый, CWS — сжатый с помощью zlib, ZWS — сжатый с помощью LZMA).
  • Версию формата (от 1 до 40).
  • Размер кадра (ширина и высота в твипах — 1/20 пикселя).
  • Частоту кадров (обычно 12–30 кадров в секунду).
  • Количество кадров.

Теги делятся на два типа: теги определения (создают объекты — шрифты, изображения, спрайты) и теги управления (управляют отображением — перемещение, вращение, воспроизведение звука). Каждый тег имеет уникальный идентификатор и может содержать данные переменной длины.

Графика и анимация

SWF поддерживает как векторную, так и растровую графику. Векторные объекты описываются с помощью кривых Безье, что позволяет масштабировать их без потери качества. Растровые изображения могут быть встроены в форматах JPEG, PNG, GIF (с потерями или без). Анимация реализуется через покадровую анимацию (изменение положения, формы, цвета объектов) или через программное управление с помощью ActionScript.

Аудио и видео

SWF может содержать аудиоданные в форматах MP3, ADPCM, Nellymoser, Speex (для голоса) и RAW. Видео поддерживается в форматах Sorenson Spark, H.263, VP6 и H.264 (начиная с Flash Player 9). Видео может быть встроено непосредственно в SWF-файл или загружаться из внешнего источника (прогрессивная загрузка, потоковое вещание через RTMP).

ActionScript

ActionScript — язык программирования, используемый в SWF-файлах. Существует три основные версии:

  • ActionScript 1.0 (Flash 4–5): простой, процедурный, с ограниченными возможностями.
  • ActionScript 2.0 (Flash MX 2004 — Flash 8): объектно-ориентированный, с классами и наследованием.
  • ActionScript 3.0 (Flash Player 9 и выше): мощный, основанный на ECMAScript 4, с поддержкой событий, пакетов, типов данных и строгой типизации.

ActionScript 3.0 значительно ускорил выполнение скриптов, но требовал переписывания кода для старых проектов.

Применение

Веб-анимация и реклама

На протяжении 2000-х годов SWF был основным форматом для создания анимированных баннеров, интерактивных меню и заставок на веб-сайтах. Рекламные сети (например, DoubleClick) активно использовали Flash-баннеры благодаря возможности встраивать анимацию, звук и интерактивные элементы.

Онлайн-игры

SWF-формат стал платформой для тысяч браузерных игр, от простых головоломок до сложных RPG и симуляторов. Популярные игровые порталы (Newgrounds, Kongregate, Armor Games) специализировались на Flash-играх. Многие известные игры, такие как The Binding of Isaac (первоначально), Super Meat Boy (прототип) и QWOP, были созданы на Flash.

Видеоплееры

До распространения HTML5 и сервисов потокового видео (YouTube, Vimeo) большинство веб-видеоплееров использовали SWF-формат. Flash Player обеспечивал воспроизведение видео с поддержкой прогрессивной загрузки и потокового вещания через RTMP.

Образование и презентации

SWF использовался для создания интерактивных учебных материалов, симуляторов, тестов и презентаций. Программы для создания электронных курсов (например, Adobe Captivate) экспортировали проекты в SWF.

Настольные приложения

С помощью Adobe AIR разработчики могли создавать настольные приложения на основе SWF, которые работали на Windows, macOS и Linux. Примеры: TweetDeck (ранняя версия), некоторые игры и утилиты.

Критика и недостатки

Безопасность

SWF-формат и Flash Player неоднократно подвергались критике из-за многочисленных уязвимостей безопасности. Злоумышленники использовали Flash для внедрения вредоносного кода, кражи данных, установки рекламного ПО и ботнетов. По данным отчётов безопасности, Flash Player был одной из самых уязвимых программ. Adobe выпускала регулярные обновления, но количество уязвимостей оставалось высоким.

Производительность и энергопотребление

Flash Player требовал значительных ресурсов процессора и памяти, особенно при воспроизведении видео или сложной анимации. На мобильных устройствах это приводило к быстрому разряду батареи и перегреву. Apple неоднократно указывала на эти проблемы как на причину отказа от Flash в iOS.

Закрытость и проприетарность

SWF-формат и Flash Player были проприетарными технологиями, контролируемыми Adobe. Это ограничивало возможности сторонних разработчиков по созданию альтернативных плееров и инструментов. Хотя спецификация формата была опубликована Adobe, полная реализация плеера оставалась закрытой.

Устаревание

С развитием HTML5, CSS3 и JavaScript многие функции Flash (анимация, видео, интерактивность) стали доступны без использования плагинов. Открытые стандарты обеспечивали лучшую совместимость, безопасность и производительность. К 2020 году Flash был полностью вытеснен из веба.

Наследие и эмуляция

Несмотря на прекращение поддержки, значительное количество SWF-файлов (игры, анимации, образовательные материалы) остаётся в интернете и на локальных дисках. Для их воспроизведения были разработаны эмуляторы и конвертеры:

  • Ruffle — эмулятор Flash Player, написанный на Rust. Позволяет запускать SWF-файлы в браузере через WebAssembly или как настольное приложение. Проект активно развивается, поддерживает ActionScript 1.0/2.0 и частично ActionScript 3.0.
  • Lightspark — альтернативный плеер с открытым исходным кодом, поддерживающий ActionScript 3.0.
  • Adobe Flash Player Projector — автономная версия плеера, которую можно использовать для локального воспроизведения SWF-файлов (официально не поддерживается, но доступна на сторонних ресурсах).
  • Конвертеры — программы, преобразующие SWF в видео (MP4, AVI) или в HTML5 (например, Google Swiffy, закрытый в 2019 году).

Многие классические Flash-игры и анимации были сохранены в архивах, таких как Internet Archive, где они доступны через эмулятор Ruffle.

Источники

  • Adobe Flash Player EOL General Information Page (Adobe, 2020)
  • История развития Flash: от FutureSplash до Adobe (Macromedia/Adobe, 1996–2017)
  • Спецификация формата SWF (Adobe, версия 19, 2013)
  • Статья «Thoughts on Flash» (Стив Джобс, 2010)
  • Отчёты по безопасности Flash Player (CVE, 2005–2020)
  • Документация проекта Ruffle (ruffle.rs, 2023)
  • Статья «The Rise and Fall of Adobe Flash» (The Verge, 2020)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →