SWF ( / ˈ s w ɪ f / ) [6] — несуществующий формат файлов Adobe Flash , который использовался для мультимедиа , векторной графики и ActionScript . [7]
Созданные с помощью FutureWave Software , затем перенесенные в Macromedia , а затем перешедшие под контроль Adobe , SWF-файлы могут содержать анимацию или апплеты различной степени интерактивности и функций. Они также могут возникать в программах, обычно в браузерных играх , использующих ActionScript .
Программисты могут создавать SWF-файлы из нескольких продуктов Adobe, включая Flash , Flash Builder ( IDE ), Adobe Animate (переименование Adobe Flash с 2016 года) и After Effects , а также с помощью MXMLC, компилятора приложений командной строки, который является частью бесплатно доступного Flex SDK . Хотя Adobe Illustrator может создавать файлы формата SWF с помощью функции «экспорта», он не может их открывать или редактировать. Помимо использования продуктов Adobe, можно создавать SWF-файлы с помощью компилятора Motion-Twin ActionScript 2 с открытым исходным кодом (MTASC), библиотеки Ming с открытым исходным кодом и пакета бесплатного программного обеспечения SWFTools . Различные другие сторонние программы также могут создавать файлы в этом формате, например Multimedia Fusion 2 , Captivate и SWiSH Max .
Термин «SWF» возник как аббревиатура от ShockWave Flash . [8] Это использование было изменено на бэкроним Small Web Format , чтобы избежать путаницы с другой технологией, Shockwave , на основе которой произошел SWF. [9] [10] Официального решения Adobe по поводу инициализма «SWF» не существует. [11]
Adobe объявила об окончании срока действия своего Flash-плеера 31 декабря 2020 года. 12 января 2021 года она выпустила обновление для своего Flash-плеера, которое блокировало запуск всего Flash-контента. [12]
Небольшая компания FutureWave Software изначально определила формат файла с одной основной целью: создавать небольшие файлы для отображения развлекательной анимации. [13] Идея заключалась в формате, который программное обеспечение плеера могло бы работать в любой системе и который работал бы при более медленных сетевых соединениях. FutureWave выпустила FutureSplash Animator в мае 1996 года. В декабре 1996 года Macromedia приобрела FutureWave, и FutureSplash Animator стал Macromedia Flash 1.0.
Первоначальное название SWF возникло из-за желания Macromedia извлечь выгоду из известного бренда Macromedia Shockwave ; Macromedia Director создавала файлы Shockwave для конечного пользователя, поэтому файлы, созданные с помощью их нового продукта Flash, пытались извлечь выгоду из уже существующего бренда. Поскольку Flash стал более популярным, чем сам Shockwave, это решение о брендинге стало более обременительным, поэтому формат стал называться просто SWF. [8]
Adobe приобрела Macromedia в 2005 году. [14]
1 мая 2008 года Adobe сняла лицензионные ограничения на спецификации формата SWF в рамках проекта Open Screen Project . Однако Роб Савой , член команды разработчиков Gnash , указал на некоторые части формата Flash, которые остаются закрытыми. [15] 1 июля 2008 года Adobe выпустила для Google и Yahoo код, который позволил их поисковым системам сканировать и индексировать SWF-файлы. [16]
Основным графическим примитивом в SWF является путь, представляющий собой цепочку сегментов примитивных типов, начиная от линий и заканчивая сплайнами или кривыми Безье . Из них можно построить дополнительные примитивы, такие как прямоугольники, эллипсы и даже текст. Таким образом, графические элементы в SWF очень похожи на SVG и MPEG-4 BIFS . SWF также использует списки отображения и позволяет присваивать имена и повторно использовать ранее определенные компоненты. [17]
Формат двоичного потока, который использует SWF, очень похож на атомы QuickTime с тегом, длиной и полезной нагрузкой – организация, которая позволяет (старым) игрокам очень легко пропускать контент, который они не поддерживают. [17]
Первоначально этот формат был ограничен представлением векторных объектов и изображений в простой последовательной форме, но в более поздних версиях этот формат поддерживает аудио (начиная с Flash 3) и видео (начиная с Flash 6).
Adobe представила новый низкоуровневый 3D API в версии 11 Flash Player. Первоначально этому API было присвоено кодовое название Molehill, но в конечном итоге официальное название было Stage3D . Он должен был стать эквивалентом OpenGL или Direct3D . [18] : 9 В Stage3D шейдеры выражаются на языке низкого уровня, называемом языком ассемблера Adobe Graphics (AGAL). [18] : 57 [19]
Adobe предоставляет плагины , такие как Adobe Flash Player и Adobe Integrated Runtime , для воспроизведения SWF-файлов в веб-браузерах во многих настольных операционных системах, включая Microsoft Windows , Mac OS X и Linux в архитектуре x86 и архитектуре ARM ( только ChromeOS ).
GNU приступила к разработке бесплатного программного проигрывателя SWF под названием Gnash под лицензией GNU General Public License (GPL). Несмотря на то, что Gnash был объявлен высокоприоритетным проектом, финансирование Gnash было довольно ограниченным. [20] Еще одним игроком является компания Swfdec , имеющая лицензию LGPL . Lightspark — это продолжение Gnash, поддерживающее более поздние версии SWF. [20]
Adobe включила воспроизведение и создание SWF в другие свои продукты и технологии, в том числе в Adobe Shockwave , которая визуализирует более сложные документы. [17] SWF также можно встраивать в файлы PDF ; их можно просмотреть с помощью Adobe Reader 9 или более поздней версии. [21] InDesign CS6 также может напрямую создавать некоторые ограниченные формы SWF-анимации. [22]
Консоли Sony PlayStation Portable могут воспроизводить ограниченные файлы SWF в веб-браузере Sony, начиная с версии прошивки 2.71. Консоли Nintendo Wii [23] и Sony PS3 [ 24] могут запускать SWF-файлы через свои интернет-браузеры.
Scaleform GFx — это коммерческий альтернативный проигрыватель SWF, который поддерживает полное аппаратное ускорение с использованием графического процессора и имеет высокую совместимость до Flash 8 и AS2. Scaleform GFx лицензируется как промежуточное программное обеспечение для игр и используется во многих компьютерных и консольных 3D-играх для пользовательских интерфейсов, HUD , мини-игр и воспроизведения видео. [ нужна цитата ]
Новые 3D-функции SWF рассматривались как альтернатива WebGL с появлением 3D-движков, таких как Papervision3D , [25] [26] [27] Away3D , [25] [28] [29] Sandy 3D, [25] [30] и Alternativa 3D с таргетингом на 3D SWF. [31] Хотя некоторые из этих проектов стартовали примерно в 2005 году, до Flash Player 10 они не поддерживали ускорение графического процессора , и даже в этой версии Flash Player шейдеры можно было использовать для тех же материалов, но информацию о вершинах все равно приходилось передавать. обрабатываются на ЦП (с использованием деревьев BSP и т. д.) [31] После того, как в версии 11 Flash Player был добавлен новый низкоуровневый API Stage3D, некоторые, но не все, эти проекты перешли на новый API. Переносилась версия Away3D 4. [32]
По данным независимого исследования, проведенного Millward Brown и опубликованного Adobe в 2010 году, более 99% настольных веб-браузеров на «зрелых рынках» (определяемых как США, Канада, Великобритания, Франция, Германия, Япония, Австралия и Новая Зеландия) был установлен плагин SWF, причем около 90% имели последнюю версию Flash Player. [33]
Из-за растущей популярности HTML5 для игр и анимации, а также из-за многочисленных дыр в безопасности, которые досаждали SWF-плееру Adobe, Adobe объявила об окончании срока службы Flash-плеера 31 декабря 2020 года. 12 января 2021 года компания выпустила обновление для своего Flash-плеера. Flash-плеер, который блокировал запуск всего Flash-контента.
Adobe предоставляет частичную спецификацию SWF, [34] последний раз обновленную в январе 2013 года, чтобы отразить изменения в SWF версии 19. [35] Версии SWF были отделены от версий Flash player после Flash 10. После этого номер версии SWF увеличился. быстро; SWF версии 19 соответствует новым функциям, добавленным в Flash Player 11.6. [36] Flash Player 14 использует SWF версии 25. [37]
В 2008 году документ со спецификациями подвергся критике со стороны Роба Савойя , ведущего разработчика проекта Gnash , за то, что в нем отсутствуют «огромные объемы» информации, необходимой для полной реализации SWF, а также отсутствуют спецификации для RTMP и Sorenson Spark . [15] Спецификация RTMP [38] была обнародована в июне 2009 года. [ нужна ссылка ] Кодек Sorenson Spark не является собственностью Adobe.
До 1 мая 2008 г. реализация программного обеспечения, воспроизводящего SWF, была запрещена лицензией спецификации. [39] В этот день в рамках своего проекта Open Screen компания Adobe сняла все подобные ограничения на форматы SWF и FLV . [40]
Использование программного обеспечения, создающего SWF-файлы, всегда разрешалось при условии, что полученные файлы «не содержат ошибок в последней общедоступной версии Adobe Flash Player». [41]
Другие форматы, связанные с созданием SWF-файлов в цепочке инструментов Adobe, остаются без общедоступной спецификации. Одним из примеров является FLA, редактируемая версия SWF, используемая Adobe Flash, но не используемая другими инструментами Adobe, которые также могут выводить SWF, хотя и с меньшим количеством функций. [42]
Вы не имеете права каким-либо образом использовать Спецификацию для создания или разработки среды выполнения, клиента, проигрывателя, исполняемого файла или другой программы, которая читает или отображает SWF-файлы.