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] Официального решения по аббревиатуре «SWF» от Adobe нет. [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. Первоначально кодовое название Molehill, официальное название, данное этому API, в конечном итоге было Stage3D . Он был задуман как эквивалент OpenGL или Direct3D . [18] : 9 В Stage3D шейдеры выражаются на низкоуровневом языке, называемом Adobe Graphics Assembly Language (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 был объявлен высокоприоритетным проектом GNU, финансирование 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 они не поддерживали ускорение GPU , и даже в этой версии Flash Player шейдеры могли использоваться для тех же материалов, но информацию о вершинах по-прежнему приходилось обрабатывать на CPU (используя деревья BSP и т. д.) [31] После того, как в версии 11 Flash Player был добавлен новый API низкого уровня Stage3D, некоторые, но не все, эти проекты перешли на новый API. Одним из проектов, который действительно перешел, был Away3D версии 4. [32]
Согласно независимому исследованию, проведенному Millward Brown и опубликованному Adobe в 2010 году, более 99% настольных веб-браузеров на «зрелых рынках» (определяемых как США, Канада, Великобритания, Франция, Германия, Япония, Австралия и Новая Зеландия) имели установленный плагин SWF, причем около 90% имели последнюю версию Flash Player. [33]
В связи с растущей популярностью HTML5 для игр и анимации, а также многочисленными уязвимостями в системе безопасности проигрывателя Adobe SWF, 31 декабря 2020 года компания Adobe объявила об окончании поддержки своего проигрывателя Flash . 12 января 2021 года компания выпустила обновление для проигрывателя 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 Project компания Adobe сняла все подобные ограничения на форматы SWF и FLV . [40]
Внедрение программного обеспечения, создающего SWF-файлы, всегда разрешалось при условии, что полученные файлы будут «не содержать ошибок в последней общедоступной версии Adobe Flash Player». [41]
Другие форматы, связанные с авторингом SWF в цепочке инструментов Adobe, остаются без публичной спецификации. Одним из примеров является FLA, который является редактируемой версией SWF, используемой Adobe Flash, но не другими инструментами Adobe, которые также могут выводить SWF, хотя и с меньшим количеством функций. [42]
Вы не можете использовать Спецификацию каким-либо образом для создания или разработки среды выполнения, клиента, проигрывателя, исполняемого файла или другой программы, которая читает или отображает файлы SWF.