Article de reference

SWF

SWF ( / ˈ s w ɪ f / ) est un format de fichier Adobe Flash obsolète qui est utilisé pour le multimédia , les graphiques vectoriels et ActionScript . Créés à l'origine par Future...

SWF ( / ˈ s w ɪ f / ) est un format de fichier Adobe Flash obsolète qui est utilisé pour le multimédia , les graphiques vectoriels et ActionScript .

Créés à l'origine par FutureWave Software , puis repris par Macromedia , et enfin acquis par Adobe , les fichiers SWF peuvent contenir des animations ou des applets présentant divers degrés d'interactivité et de fonctionnalités. On les retrouve également dans des programmes, notamment des jeux par navigateur , utilisant ActionScript .

Les programmeurs peuvent générer des fichiers SWF à partir de plusieurs produits Adobe, notamment Flash , Flash Builder (un EDI ), Adobe Animate (anciennement Adobe Flash) et After Effects , ainsi que via MXMLC, un compilateur d'applications en ligne de commande faisant partie du kit de développement logiciel ( SDK) Flex, disponible gratuitement . Bien qu'Adobe Illustrator puisse générer des fichiers au format SWF via sa fonction « Exporter », il ne permet ni de les ouvrir ni de les modifier. Outre les produits Adobe, il est possible de créer des fichiers SWF avec le compilateur open source Motion-Twin ActionScript 2 (MTASC) , la bibliothèque open source Ming et la suite logicielle libre SWFTools . Divers autres logiciels tiers peuvent également produire des fichiers dans ce format, tels que Multimedia Fusion 2 , Captivate et SWiSH Max .

Le terme « SWF » était à l’origine l’abréviation de ShockWave Flash . Cet usage a été modifié en Small Web Format (rétroacronyme) afin d’éviter toute confusion avec une autre technologie, Shockwave , dont SWF est dérivé. Adobe n’a pas encore pris de position officielle concernant l’acronyme « SWF ».

Adobe a déclaré la fin de vie de son lecteur Flash le 31 décembre 2020. Le 12 janvier 2021, il a déployé une mise à jour de son lecteur Flash qui bloquait l'exécution de tout contenu Flash.

Histoire

La petite société FutureWave Software a initialement défini le format de fichier avec un objectif principal : créer des fichiers légers pour l’affichage d’animations divertissantes. L’idée reposait sur un format compatible avec tous les systèmes et fonctionnant même avec des connexions réseau lentes. FutureWave a lancé FutureSplash Animator en mai 1996. En décembre 1996, Macromedia a racheté FutureWave et FutureSplash Animator est devenu Macromedia Flash 1.0.

Le nom SWF d'origine est né de la volonté de Macromedia de tirer profit de la notoriété de la marque Macromedia Shockwave ; Macromedia Director générait des fichiers Shockwave pour l'utilisateur final, et les fichiers créés par leur nouveau produit Flash cherchaient donc à capitaliser sur cette marque déjà établie. À mesure que Flash gagnait en popularité, ce choix de marque s'est avéré être un handicap, et le format a commencé à être simplement appelé SWF.

Adobe a acquis Macromedia en 2005.

Le 1er mai 2008, Adobe a levé ses restrictions de licence sur les spécifications du format SWF, dans le cadre du projet Open Screen . Cependant, Rob Savoye , membre de l' équipe de développement de Gnash , a souligné que certaines parties du format Flash restent fermées. Le 1er juillet 2008, Adobe a fourni à Google et Yahoo le code permettant à leurs moteurs de recherche d'explorer et d'indexer les fichiers SWF.

Description

L'élément graphique principal du format SWF est le chemin, qui est une chaîne de segments de types primitifs, allant des lignes aux splines ou aux courbes de Bézier . D'autres éléments primitifs, comme des rectangles, des ellipses et même du texte, peuvent être construits à partir de ces segments. Les éléments graphiques du format SWF sont donc assez similaires à ceux des formats SVG et MPEG-4 BIFS . Le format SWF utilise également des listes d'affichage et permet de nommer et de réutiliser des composants précédemment définis.

Le format de flux binaire utilisé par SWF est assez similaire aux atomes QuickTime , avec une étiquette, une longueur et une charge utile – une organisation qui permet très facilement aux lecteurs (plus anciens) d'ignorer les contenus qu'ils ne prennent pas en charge.

Initialement limité à la présentation d'objets et d'images vectoriels de manière simple et séquentielle, le format, dans ses versions ultérieures, permet l'audio (depuis Flash 3) et la vidéo (depuis Flash 6).

Adobe a introduit une nouvelle API 3D de bas niveau dans la version 11 de Flash Player. Initialement nommée Molehill, cette API a finalement été baptisée Stage3D . Elle était conçue comme l'équivalent d' OpenGL ou de Direct3D . Dans Stage3D, les shaders sont exprimés dans un langage de bas niveau appelé Adobe Graphics Assembly Language (AGAL).

Adoption

Adobe met à disposition des plugins , tels qu'Adobe Flash Player et Adobe Integrated Runtime , pour lire les fichiers SWF dans les navigateurs Web sur de nombreux systèmes d'exploitation de bureau, notamment Microsoft Windows , Mac OS X et Linux sur l' architecture x86 et l'architecture ARM ( ChromeOS uniquement).

GNU a entrepris le développement d'un lecteur SWF libre appelé Gnash, sous licence publique générale GNU (GPL). Bien que déclaré projet prioritaire pour GNU, le financement de Gnash est resté relativement limité. Un autre lecteur, Swfdec , est distribué sous licence LGPL . Lightspark est une évolution de Gnash prenant en charge des versions SWF plus récentes.

Adobe a intégré la lecture et la création de fichiers SWF dans d'autres produits et technologies, notamment Adobe Shockwave , qui permet de traiter des documents plus complexes. Les fichiers SWF peuvent également être intégrés aux fichiers PDF ; ces derniers sont compatibles avec Adobe Reader 9 et versions ultérieures. InDesign CS6 peut également générer directement certaines animations SWF, bien que limitées.

Les consoles Sony PlayStation Portable peuvent lire un nombre limité de fichiers SWF dans le navigateur Web de Sony, à partir de la version 2.71 du firmware. Les consoles Nintendo Wii et Sony PS3 peuvent exécuter des fichiers SWF via leurs navigateurs Web.

Scaleform GFx est un lecteur SWF alternatif commercial qui offre une accélération matérielle complète via le GPU et une compatibilité élevée avec Flash 8 et AS2. Scaleform GFx est distribué sous licence en tant que solution middleware pour jeux et utilisé par de nombreux jeux 3D sur PC et consoles pour les interfaces utilisateur, les HUD , les mini-jeux et la lecture vidéo.

Les nouvelles fonctionnalités 3D du format SWF ont été perçues comme une alternative à WebGL , ce qui a entraîné l'émergence de nombreux moteurs 3D tels que ] , 29 ] et format SWF 3D . Bien que certains de ces projets aient débuté vers 2005, ils ne prenaient pas en charge l' accélération GPU avant la version 10 de Flash Player. Même dans cette version, si l'utilisation de shaders pour les mêmes matériaux était possible, le traitement des informations de vertex nécessitait toujours le processeur (via des arbres BSP , etc.) Après l'ajout de la nouvelle API bas niveau Stage3D à la version 11 de Flash Player, certains de ces projets, mais pas tous, ont migré vers cette nouvelle API. L'un des logiciels qui a migré est Away3D, version 4.

D’après une étude indépendante réalisée par Millward Brown et publiée par Adobe en 2010, plus de 99 % des navigateurs Web de bureau sur les « marchés matures » (définis comme les États-Unis, le Canada, le Royaume-Uni, la France, l’Allemagne, le Japon, l’Australie et la Nouvelle-Zélande) disposaient d’un plugin SWF installé, et environ 90 % d’entre eux possédaient la dernière version du lecteur Flash.

En raison de la popularité croissante du HTML5 pour les jeux et les animations, ainsi que des nombreuses failles de sécurité qui affectaient le lecteur SWF d'Adobe, Adobe a déclaré la fin de vie de son lecteur Flash le 31 décembre 2020. Le 12 janvier 2021, il a déployé une mise à jour de son lecteur Flash qui bloquait l'exécution de tout contenu Flash.

Spécifications publiées

Adobe met à disposition une spécification partielle du format SWF , mise à jour pour la dernière fois en janvier 2013 afin de refléter les changements apportés par la version 19 du SWF Les versions du SWF ont été dissociées des versions de Flash Player après Flash 10. Par la suite, la numérotation des versions du SWF a progressé rapidement ; la version 19 du SWF correspond aux nouvelles fonctionnalités ajoutées dans Flash Player 11.6 . Flash Player 14 utilise la version 25 du SWF

En 2008, le document de spécifications a été critiqué par Rob Savoye , développeur principal du projet Gnash , qui lui reprochait de manquer d'informations essentielles à la mise en œuvre complète du format SWF, notamment les spécifications RTMP et Sorenson Spark . La spécification RTMP a été publiée en juin 2009. Le codec Sorenson Spark n'appartient pas à Adobe.

Licence

Jusqu'au 1er mai 2008, la licence de la spécification interdisait l'implémentation de logiciels capables de lire les fichiers SWF. À cette date, dans le cadre de son projet Open Screen, Adobe a levé toutes ces restrictions sur les formats SWF et FLV .

L’implémentation de logiciels créant des fichiers SWF a toujours été autorisée, à condition que les fichiers résultants soient « exempts d’erreurs dans la dernière version publiquement disponible d’Adobe Flash Player ».

Formats de fichiers et extensions associés

D'autres formats liés à la création de fichiers SWF dans la chaîne d'outils Adobe ne disposent toujours pas de spécification publique. Le format FLA en est un exemple : il s'agit de la version modifiable du format SWF utilisée par Adobe Flash, mais pas par d'autres outils Adobe capables également de générer des fichiers SWF, bien qu'avec moins de fonctionnalités.

Extension Explication
. abcBytecode Actionscript utilisé par la machine virtuelle Actionscript AVM (Flash 8 et versions antérieures) et AVM2 (Flash 9 ou versions ultérieures).
. amfCommandes de message d'action pour effectuer des transactions avec un FMS .
. commeLe code source ActionScript est contenu dans des fichiers sources simples. Les fichiers FLA peuvent également contenir directement du code ActionScript, mais des fichiers .as externes distincts sont souvent utilisés pour des raisons de structure ou pour exposer le code aux applications de gestion de versions.
.ascActionScript côté serveur, utilisé pour développer des applications client-serveur Macromedia Flash Communication Server MX efficaces et flexibles.
.asoLes fichiers cache utilisés lors du développement Flash contiennent du bytecode ActionScript compilé. Un fichier ASO est recréé lorsqu'une modification est détectée dans ses fichiers de classe correspondants. Il arrive que l'IDE Flash ne reconnaisse pas la nécessité d'une recompilation ; dans ce cas, ces fichiers cache doivent être supprimés manuellement. Ils se trouvent dans %USERPROFILE%\Local Settings\Application Data\Macromedia\Flash8\en\Configuration\Classes\aso sous Windows / Flash 8.
.f4aSuffixe Adobe pour les fichiers iTunes M4A qui ne contiennent que des flux audio.
.f4bSuffixe Adobe pour les fichiers de livres audio iTunes M4B .
.f4fFichiers MP4 fragmentés et atomisés. Contenant des paquets FLV .
.f4mFichiers manifestes XML. Contenant des en-têtes onMetaData FLV base64 pour une version Adobe du contrôle du débit binaire HTTP Live Streaming .
.f4pSuffixe Adobe pour les médias chiffrés avec le système de gestion des droits numériques Adobe Access , qui est basé sur le même système de protection que leur protocole RTMP.
.f4vSimilaire aux fichiers M4V d'iTunes, basés sur le format MP4 et lisibles par Flash Player 9 Update 3 et versions ultérieures, le format F4V est un second format conteneur pour les vidéos Flash et diffère du format FLV. Il est basé sur le format de fichier multimédia ISO .
.flaFichiers sources pour l'application Flash. Les logiciels de création Flash permettent de modifier les fichiers FLA et de les compiler en fichiers .swf. Le format de fichier source Flash est actuellement un format binaire basé sur le format de fichier composé Microsoft (MCF) . Dans Flash Pro CS5, le format FLA est un conteneur ZIP contenant une structure de projet XML.
.flpLes fichiers XML servent à référencer tous les fichiers de document contenus dans un projet Flash. Les projets Flash permettent à l'utilisateur de regrouper plusieurs fichiers liés afin de faciliter l'organisation, la compilation et la génération du projet.
. flvLes fichiers vidéo Flash ( FLV) , créés par Adobe Flash, ffmpeg , Sorenson Squeeze ou On2 Flix , contiennent des données audio et vidéo encodées de la même manière que les fichiers SWF.
. fxgFormat de fichier XML unifié développé par Adobe pour Flex , Flash, Photoshop et d'autres applications.
.jsflAjoute des fonctionnalités à l'environnement de création Flash ; elles contiennent du code JavaScript et accèdent à l'API JavaScript de Flash.
.mxmlUtilisés conjointement avec les fichiers ActionScript (et les fichiers .css), ils offrent une syntaxe de type langage de balisage (comme HTML) pour la conception d'interfaces graphiques en Flex. Chaque fichier MXML crée une nouvelle classe qui étend la classe de la balise racine et ajoute les balises imbriquées comme enfants (si elles descendent de UIComponent) ou comme membres de la classe.
.solConteneur Adobe Flash Player destiné à contenir des objets partagés locaux (données stockées sur le système exécutant le lecteur Flash).
.splDocuments FutureSplash Animator .
. swcConteneur pour la distribution de composants ; il contient un clip compilé, le fichier de classe ActionScript du composant et d'autres fichiers qui décrivent le composant.
.swdFichiers de débogage temporaires utilisés lors du développement Flash. Une fois le projet Flash terminé, ces fichiers ne sont plus nécessaires et peuvent être supprimés.
.swfLes fichiers SWF finalisés, compilés et publiés ne peuvent pas être modifiés avec Adobe Flash. Cependant, plusieurs décompilateurs « .swf » non-Adobe existent (comme celui de Sothink) pour reconvertir les fichiers SWF au format FLA ou au format Apache Flex plus récent . L’importation de fichiers .swf avec Flash permet de récupérer certains éléments, mais pas tous
.swtFormats « modèles » de fichiers .swf, utilisés par Macromedia Generator. C’est également l’extension de fichier modèle Flash d’ Adobe Dreamweaver .
.xflLes fichiers de projet XML sont équivalents au format binaire .fla. Les logiciels de création Flash utilisent le format XFL comme format d'échange dans Flash CS4. Ils importent les fichiers XFL exportés depuis InDesign et After Effects. Dans Flash Pro CS5, le fichier XFL est un fichier clé qui ouvre le fichier FLA non compressé, qui est une arborescence de dossiers contenant des fichiers XML et binaires.