Hva er SWF-filformatet?
Filer med filendelsen .swf inneholder animasjoner - som kan være interaktive - lagret i et binært multimediaformat opprinnelig laget av FutureWave Software i 1996. Navnet står for Small Web Format, noe som gjenspeiler det opprinnelige målet om å levere kompakte, båndbreddevennlige animasjoner over internett.
Formatet ble kjøpt opp av Macromedia og senere av Adobe, og brukes til å lage og lagre:
- multimediainnhold inkludert lyd og video,
- vektorgrafikk og punktgrafikk,
- ActionScript-byttekode og interaktive appletter.
Applikasjoner som historisk ble brukt til å lage .swf-filer inkluderer Adobe Flash og Adobe Animate, som etterfulgte det; verktøy med åpen kildekode som SWFTools var også tilgjengelige. I 2008 åpnet Adobe deler av formatspesifikasjonen, slik at søkemotorer som Google og Yahoo kunne indeksere innhold i animasjonene. Formatet utviklet seg over mange år: tidlige versjoner tillot kun animering av vektorgrafikk, mens senere utgivelser utvidet mulighetene til strømming av lyd og video og grunnleggende 3D-animasjon.
Adobe Flash Player - nettleserutvidelsen som kreves for å spille av .swf-filer - nådde slutten av levetiden 31. desember 2020. Filer kan fortsatt spilles av utenfor en nettleser ved å bruke den frittstående Ruffle-emulatoren eller via Internet Archive sin Flash-spiller. Kildeprosjekter ble vanligvis lagret som .FLA-filer og kompilert til .swf for distribusjon; relaterte formater inkluderer .FLV for Flash-videostrømmer og .SWC for gjenbrukbare Flash-komponentbiblioteker.
Sikkerhet og trygghet
RISIKO: MEDIUMSWF var en beryktet vektor for skadevare - Flash Player hadde en lang historikk med kritiske CVE-er for ekstern kodekjøring, noe som er en hovedårsak til at det ble avviklet. Det gamle tillegget er borte, så «drive-by» SWF-utnyttelser i nettlesere er ikke lenger en aktiv trussel. Gjenværende risiko: (1) en SWF inneholder ActionScript som kan foreta nettverksanrop eller åpne URL-er, så kjør kun upålitelige filer i sandkassen Ruffle (foretrukket) fremfor den frakoblede debug-projektoren; (2) ondsinnede .exe «projector»-filer som utgir seg for å være en ufarlig animasjon; (3) installer aldri den utgåtte Flash Player fra tredjeparts «kodek»-sider - disse installatørene er i seg selv ofte skadevare.
Formatdetaljer
i et nøtteskallProgrammer som åpner SWF-filer
Tekniske detaljer
dyp spesifikasjon| Magic bytes | FWS (46 57 53) = ukomprimert; CWS (43 57 53) = zlib-komprimert; ZWS (5A 57 53) = LZMA-komprimert - alle ved byte-offset 0 |
| Versjons- og lengdefelt | Byte 3 koder SWF-versjonsnummeret (1-46); byte 4-7 lagrer den fulle ukomprimerte fillengden som en little-endian uint32 |
| MIME-type | application/x-shockwave-flash |
| Komprimering | Ingen (SWF 1-5); zlib brukt etter den 8-byte lange headeren (SWF 6+, CWS-signatur); LZMA brukt etter den 8-byte lange headeren (SWF 13+, ZWS-signatur) - de første 8 bytene er aldri komprimert |
| Koordinatenhet | Twip (1/20 av en piksel); alle romlige verdier lagres som twip-heltall ved bruk av SWF-bitfelt med variabel lengde |
| Tagg-basert struktur | Innhold kodet som taggede poster: 2-byte kort header (10-bit posttype + 6-bit lengde) eller 6-byte lang header for nyttelast ≥ 63 byte |
| Vektorgrafikk | Former definert via SHAPE-poster med kvadratiske Bézier-kurvekanter; fylltyper inkluderer ensfarget, lineær/radial gradient og punktgrafikk |
| Skriptmotor | ActionScript 1 og 2 kjører på AVM1 (stabelbasert tolket VM); ActionScript 3 (SWF 9+) kjører på AVM2 (registerbasert, med JIT i enkelte kjøretidsmiljøer) |
| Videokodeker | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 og VP6 med alfakanal (SWF 8+) |
| Lydkodeker | Ukomprimert PCM, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Skriftinnbygging | TrueType-konturer konvertert til SWF-formposter; DefineFont2- og DefineFont3-tagger inkluderer fulle Unicode-tegntabeller |
| 3D-transformasjoner | PlaceObject3-tagg (SWF 11+) legger til en 4×4 perspektivmatrise som muliggjør 3D-rotasjon og projeksjon av objekter i visningslisten |
| Innbygging av binærdata | DefineBinaryData-tagg (SWF 9+) tillater vilkårlig rå binær nyttelast å bli lagret inne i .swf-beholderen |
| Tidslinjemodell | Rammebasert visningsliste; hver ramme er en diff av PlaceObject- og RemoveObject-tagger brukt på scenegrafen - ikke et fullstendig øyeblikksbilde av en nøkkelramme |
| Utgitt | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | web.archive.org |
SWF-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om SWF-filer.