Vad är filformatet SWF?
Filer med filändelsen .swf innehåller animeringar - som kan vara interaktiva - lagrade i ett binärt multimediaformat som ursprungligen skapades av FutureWave Software 1996. Namnet står för Small Web Format, vilket återspeglar dess ursprungliga mål att leverera kompakta, bandbreddsvänliga animeringar över internet.
Formatet förvärvades av Macromedia och senare av Adobe, och används för att skapa och lagra:
- multimediainnehåll inklusive ljud och video,
- vektorgrafik och bitmappar,
- ActionScript-bytecode och interaktiva appletar.
Program som historiskt använts för att skapa .swf-filer inkluderar Adobe Flash och Adobe Animate, som efterträdde det; verktyg med öppen källkod som SWFTools fanns också tillgängliga. Under 2008 öppnade Adobe delvis formatspecifikationen, vilket gjorde det möjligt för sökmotorer som Google och Yahoo att indexera innehåll inuti animeringar. Formatet utvecklades under många år: tidiga versioner möjliggjorde endast animering av vektorgrafik, medan senare versioner utökade möjligheterna till strömmande ljud och video samt enkel 3D-animering.
Adobe Flash Player - webbläsartillägget som krävdes för att spela .swf-filer - nådde sitt slutdatum den 31 december 2020. Filer kan fortfarande spelas upp utanför en webbläsare med den fristående Ruffle-emulatorn eller via Internet Archives Flash-bevarandespelare. Källprojekt sparades vanligtvis som .FLA-filer och kompilerades till .swf för distribution; relaterade format inkluderar .FLV för Flash-videoströmmar och .SWC för återanvändbara Flash-komponentbibliotek.
Säkerhet & trygghet
RISK: MEDIUMSWF var en ökänd vektor för skadlig kod - Flash Player hade en lång historik av kritiska CVE:er för fjärrkörning av kod, vilket är en viktig anledning till att det lades ner. Det gamla insticksprogrammet är borta, så «drive-by» SWF-exploateringar i webbläsare är inte längre ett aktivt hot. Kvarstående risker: (1) en SWF innehåller ActionScript som kan göra nätverksanrop eller öppna URL:er, så kör endast otillförlitliga filer i sandlådan Ruffle (rekommenderas) snarare än den fristående debug-projektorn; (2) skadliga .exe «projector»-filer som utger sig för att vara en harmlös animering; (3) ominstallera aldrig den nedlagda Flash Player från tredjeparts «codec»-webbplatser - dessa installerare är i sig ett vanligt lockbete för skadlig kod.
Formatdetaljer
i ett nötskalProgram som öppnar SWF-filer
Tekniska detaljer
djup specifikation| Magic bytes | FWS (46 57 53) = okomprimerad; CWS (43 57 53) = zlib-komprimerad; ZWS (5A 57 53) = LZMA-komprimerad - alla vid byte-offset 0 |
| Versions- och längdfält | Byte 3 kodar SWF-versionsnumret (1-46); byte 4-7 lagrar den fullständiga okomprimerade fillängden som en little-endian uint32 |
| MIME-typ | application/x-shockwave-flash |
| Komprimering | Ingen (SWF 1-5); zlib tillämpas efter den 8 byte långa headern (SWF 6+, CWS-signatur); LZMA tillämpas efter den 8 byte långa headern (SWF 13+, ZWS-signatur) - de första 8 byten komprimeras aldrig |
| Koordinatenhet | Twip (1/20 av en pixel); alla spatiala värden lagras som twip-heltal med hjälp av SWF-bitfält med variabel längd |
| Tagg-baserad struktur | Innehåll kodat som taggade poster: 2-byte kort header (10-bitars posttyp + 6-bitars längd) eller 6-byte lång header för nyttolaster ≥ 63 byte |
| Vektorgrafik | Former definierade via SHAPE-poster med kvadratiska Bézier-kurvkanter; fyllningstyper inkluderar solid färg, linjär/radiell gradient och bitmapp |
| Skriptmotor | ActionScript 1 & 2 körs på AVM1 (stack-baserad tolkad VM); ActionScript 3 (SWF 9+) körs på AVM2 (register-baserad, med JIT i vissa körtidsmiljöer) |
| Videocodecs | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 och VP6 med alfakanal (SWF 8+) |
| Ljudcodecs | Okomprimerad PCM, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Teckensnittsinbäddning | TrueType-konturer konverterade till SWF-formposter; DefineFont2- och DefineFont3-taggar inkluderar fullständiga Unicode-teckentabeller |
| 3D-transformationer | PlaceObject3-taggen (SWF 11+) lägger till en 4×4 perspektivmatris som möjliggör 3D-rotation och projektion av objekt i visningslistan |
| Inbäddning av binärdata | DefineBinaryData-taggen (SWF 9+) tillåter godtyckliga råa binära nyttolaster att lagras inuti .swf-containern |
| Tidslinjemodell | Bildrutebaserad visningslista; varje bildruta är en diff av PlaceObject- och RemoveObject-taggar som tillämpas på scengrafen - inte en fullständig ögonblicksbild av en nyckelbildruta |
| Släppt | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Öppen standard | Ja · royaltyfri |
| Specifikation | web.archive.org |
SWF-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om SWF-filer.