Co to jest format pliku SWF?
Pliki z rozszerzeniem .swf zawierają animacje - które mogą być interaktywne - zapisane w binarnym formacie multimedialnym stworzonym pierwotnie przez FutureWave Software w 1996 roku. Nazwa oznacza Small Web Format, co odzwierciedla jego pierwotny cel, jakim było dostarczanie kompaktowych, oszczędnych pod względem przepustowości animacji przez internet.
Format został przejęty przez Macromedia, a później przez Adobe i jest używany do tworzenia oraz przechowywania:
- treści multimedialnych, w tym audio i wideo,
- grafiki wektorowej i bitmap,
- kodu bajtowego ActionScript i interaktywnych apletów.
Aplikacje historycznie używane do tworzenia plików .swf to między innymi Adobe Flash oraz Adobe Animate, który go zastąpił; dostępne były również narzędzia open-source, takie jak SWFTools. W 2008 roku Adobe częściowo otworzyło specyfikację formatu, umożliwiając wyszukiwarkom takim jak Google i Yahoo indeksowanie treści wewnątrz animacji. Format rozwijał się przez wiele lat: wczesne wersje umożliwiały animowanie tylko grafiki wektorowej, a późniejsze wydania rozszerzyły jego możliwości o strumieniowanie audio i wideo oraz podstawową animację 3D.
Adobe Flash Player - wtyczka do przeglądarki wymagana do odtwarzania plików .swf - zakończyła swój żywot 31 grudnia 2020 roku. Pliki nadal można odtwarzać poza przeglądarką za pomocą samodzielnego emulatora Ruffle lub poprzez odtwarzacz Internet Archive służący do zachowywania treści Flash. Projekty źródłowe były zazwyczaj zapisywane jako pliki .FLA i kompilowane do formatu .swf w celu dystrybucji; powiązane formaty to .FLV dla strumieni wideo Flash oraz .SWC dla bibliotek komponentów Flash wielokrotnego użytku.
Bezpieczeństwo
RYZYKO: MEDIUMSWF był znanym wektorem złośliwego oprogramowania - Flash Player miał długą historię krytycznych luk CVE umożliwiających zdalne wykonanie kodu, co było głównym powodem jego wycofania. Stara wtyczka już nie istnieje, więc ataki typu drive-by SWF w przeglądarkach nie są już aktywnym zagrożeniem. Ryzyko szczątkowe: (1) plik SWF zawiera ActionScript, który może nawiązywać połączenia sieciowe lub otwierać adresy URL, dlatego uruchamiaj niezaufane pliki tylko w piaskownicy Ruffle (zalecane), a nie w projektorze debugowania offline; (2) złośliwe pliki .exe „projektorów” udające nieszkodliwą animację; (3) nigdy nie instaluj wycofanego Flash Player z witryn trzecich oferujących „kodeki” - te instalatory same w sobie są częstą pułapką ze złośliwym oprogramowaniem.
Szczegóły formatu
w pigułceProgramy otwierające pliki SWF
Szczegóły techniczne
specyfikacja| Magiczne bajty | FWS (46 57 53) = nieskompresowany; CWS (43 57 53) = skompresowany zlib; ZWS (5A 57 53) = skompresowany LZMA - wszystkie na offsetcie bajtowym 0 |
| Pola wersji i długości | Bajt 3 koduje numer wersji SWF (1-46); bajty 4-7 przechowują pełną długość nieskompresowanego pliku jako uint32 w formacie little-endian |
| Typ MIME | application/x-shockwave-flash |
| Kompresja | Brak (SWF 1-5); zlib stosowany po 8-bajtowym nagłówku (SWF 6+, sygnatura CWS); LZMA stosowany po 8-bajtowym nagłówku (SWF 13+, sygnatura ZWS) - pierwsze 8 bajtów nigdy nie jest kompresowanych |
| Jednostka współrzędnych | Twip (1/20 piksela); wszystkie wartości przestrzenne są przechowywane jako liczby całkowite twip przy użyciu pól bitowych SWF o zmiennej długości |
| Struktura oparta na tagach | Zawartość kodowana jako rekordy z tagami: 2-bajtowy krótki nagłówek (10-bitowy typ rekordu + 6-bitowa długość) lub 6-bajtowy długi nagłówek dla danych o rozmiarze ≥ 63 bajtów |
| Grafika wektorowa | Kształty definiowane za pomocą rekordów SHAPE z krawędziami krzywych Béziera drugiego stopnia; typy wypełnień obejmują jednolity kolor, gradient liniowy/radialny oraz bitmapę |
| Silnik skryptowy | ActionScript 1 i 2 działają na AVM1 (interpretowana maszyna wirtualna oparta na stosie); ActionScript 3 (SWF 9+) działa na AVM2 (oparta na rejestrach, z JIT w niektórych środowiskach wykonawczych) |
| Kodeki wideo | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 i VP6 z kanałem alfa (SWF 8+) |
| Kodeki audio | Nieskompresowany PCM, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Osadzanie czcionek | Obrysy TrueType konwertowane na rekordy kształtów SWF; tagi DefineFont2 i DefineFont3 zawierają pełne tabele znaków Unicode |
| Transformacje 3D | Tag PlaceObject3 (SWF 11+) dodaje macierz perspektywy 4×4, umożliwiając rotację 3D i rzutowanie obiektów z listy wyświetlania |
| Osadzanie danych binarnych | Tag DefineBinaryData (SWF 9+) pozwala na przechowywanie dowolnych surowych danych binarnych wewnątrz kontenera .swf |
| Model osi czasu | Lista wyświetlania oparta na klatkach; każda klatka jest różnicą (diff) tagów PlaceObject i RemoveObject zastosowanych do grafu sceny - nie jest to pełna migawka klatki kluczowej |
| Wydano | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | web.archive.org |
Konwersje SWF
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki SWF.