Hvad er SWF-filformatet?
Filer med filtypenavnet .swf indeholder animationer - som kan være interaktive - gemt i et binært multimedieformat, der oprindeligt blev skabt af FutureWave Software i 1996. Navnet står for Small Web Format, hvilket afspejler dets oprindelige mål om at levere kompakte, båndbreddevenlige animationer over internettet.
Formatet blev opkøbt af Macromedia og senere af Adobe, og bruges til at skabe og gemme:
- multimedieindhold inklusive lyd og video,
- vektorgrafik og bitmaps,
- ActionScript-bytecode og interaktive applets.
Applikationer, der historisk er blevet brugt til at oprette .swf-filer, inkluderer Adobe Flash og Adobe Animate, som efterfulgte det; open-source-værktøjer som SWFTools var også tilgængelige. I 2008 åbnede Adobe delvist formatspecifikationen, hvilket gjorde det muligt for søgemaskiner som Google og Yahoo at indeksere indhold i animationerne. Formatet udviklede sig over mange år: tidlige versioner muliggjorde kun animering af vektorgrafik, og senere udgivelser udvidede mulighederne til streaming af lyd og video samt grundlæggende 3D-animation.
Adobe Flash Player - det browser-plugin, der kræves for at afspille .swf-filer - nåede sin udløbsdato den 31. december 2020. Filer kan stadig afspilles uden for en browser ved hjælp af den selvstændige Ruffle-emulator eller via Internet Archives Flash-bevaringsafspiller. Kildeprojekter blev typisk gemt som .FLA-filer og kompileret til .swf til distribution; relaterede formater inkluderer .FLV til Flash-videostreams og .SWC til genanvendelige Flash-komponentbiblioteker.
Sikkerhed og tryghed
RISIKO: MEDIUMSWF var en berygtet malware-vektor - Flash Player havde en lang historik med kritiske CVE'er for fjernafvikling af kode, hvilket er en væsentlig årsag til, at det blev aflivet. Det gamle plug-in er væk, så drive-by SWF-eksploits i browsere er ikke længere en aktiv trussel. Resterende risici: (1) en SWF indeholder ActionScript, der kan foretage netværkskald eller åbne URL'er, så kør kun filer, du ikke har tillid til, i den sandboxed Ruffle (foretrukket) frem for den offline debug-projektor; (2) ondsindede .exe «projector»-filer, der udgiver sig for at være en harmløs animation; (3) geninstaller aldrig den udgåede Flash Player fra tredjeparts «codec»-sider - disse installationsprogrammer er i sig selv en almindelig malware-fælde.
Formatdetaljer
kort fortaltProgrammer der åbner SWF-filer
Tekniske detaljer
dyb specifikation| Magic bytes | FWS (46 57 53) = ukomprimeret; CWS (43 57 53) = zlib-komprimeret; ZWS (5A 57 53) = LZMA-komprimeret - alle ved byte-offset 0 |
| Version- og længdefelter | Byte 3 koder SWF-versionsnummeret (1-46); byte 4-7 gemmer den fulde ukomprimerede fillængde som en little-endian uint32 |
| MIME-type | application/x-shockwave-flash |
| Komprimering | Ingen (SWF 1-5); zlib anvendt efter 8-byte headeren (SWF 6+, CWS-signatur); LZMA anvendt efter 8-byte headeren (SWF 13+, ZWS-signatur) - de første 8 bytes komprimeres aldrig |
| Koordinatenhed | Twip (1/20 af en pixel); alle spatiale værdier gemmes som twip-heltal ved hjælp af SWF-bitfelter med variabel længde |
| Tag-baseret struktur | Indhold kodet som taggede poster: 2-byte kort header (10-bit posttype + 6-bit længde) eller 6-byte lang header for payloads ≥ 63 bytes |
| Vektorgrafik | Former defineret via SHAPE-poster med kvadratiske Bézier-kurvekanter; fyldtyper inkluderer ensfarvet, lineær/radial graduering og bitmap |
| Scripting-motor | ActionScript 1 & 2 kører på AVM1 (stak-baseret fortolket VM); ActionScript 3 (SWF 9+) kører på AVM2 (register-baseret, med JIT i visse runtimes) |
| Video-codecs | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 og VP6 med alfakanal (SWF 8+) |
| Lyd-codecs | Ukomprimeret PCM, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Skrifttype-indlejring | TrueType-konturer konverteret til SWF-formposter; DefineFont2- og DefineFont3-tags inkluderer fulde Unicode-tegntabeller |
| 3D-transformationer | PlaceObject3-tag (SWF 11+) tilføjer en 4×4 perspektivmatrix, der muliggør 3D-rotation og projektion af display-list-objekter |
| Indlejring af binære data | DefineBinaryData-tag (SWF 9+) tillader vilkårlige rå binære payloads at blive gemt inde i .swf-containeren |
| Tidslinjemodel | Frame-baseret display-liste; hver frame er en diff af PlaceObject- og RemoveObject-tags anvendt på scenegrafen - ikke et fuldt keyframe-øjebliksbillede |
| Udgivet | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Åben standard | Ja · royaltyfri |
| Specifikation | web.archive.org |
SWF-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om SWF-filer.