Das Flash Format

Bei Macromedias Flash wird zwischen zwei Formaten unterschieden: zum Einen das interne Beschreibungsformat, welches
die Extension ".fla" hat und zum Anderen das Darstellungsformat, welches vom Player interpretiert wird und die
Extension ".swf" hat (welches für Shockwave Flash steht und ihren Ursprung vom Macromedia Director hat).

Ein Flash-Movie hat ebenso wie ein konventioneller Film eine feste Bildrate, jedoch wird das jeweils aktuell
angezeigte Bild zur Laufzeit berechnet. Die Filmsequenzen können sequentiell oder parallel ablaufen und auch dynamisch
erzeugt werden.
Da Grafiken im Internet so klein wie möglich sein sollten, um die Downloads und das Laden von Webseiten so schnell
wie möglich zu bewerkstelligen, ist das SWF-Format sehr effektiv aufgebaut. Das SWF-Format basiert auf Vektoren, bei
denen nur die Form die Farbe und die Position gespeichert werden muß, da der Rest beim Anzeigen berechnet wird.

Der Header:
Am Anfang jeder SWF-Datei stehen die drei Zeichen S, W und F, welche die Datei eindeutig als Shockwave Flash-File
kennzeichnen. Darauf folgen ein einfaches Byte, welches die Versionsnummer darstellt und die gesamte Datei-Laenge
als vorzeichenlose 32-bit-Zahl. Anschließend die Film-Breite und -Höhe, danach folgt die Frame Rate als
vorzeichenlose 16-bit Zahl, welche in Frames Per Seccond (fps) angegeben ist. Zuletzt befindet sich im Header noch
die Information über die Anzahl der gesamt verwendeten Frames des Filmes, ebenfalls als vorzeichenlose 16-bit Zahl.

Nach dem Header folgt eine zusammenhängende Serie von Datenblöcken. Jeder dieser Blöcke hat einen Tag-Typ und eine Länge.
Wobei hier zwischen kurzen und langen Tags unterschieden wird: Kurze Tags werden bei Blöcken von 62 Bytes
und weniger verwendet; lange Tags können jedoch bei jeder Blockgröße verwendet werden.
Jedes Programm, das eine SWF-Datei parst kann Blöcke überspringen, welche es nicht versteht. Datenblöcken können
auf Offsets im eigenen Block verweisen; jedoch nicht auf Offsets in anderen. Dies ermöglicht es Tools, Tags in
einer SWF-Datei zu entfernen, hinzuzufügen oder zu modifizieren.
Gegenwärtig sind viele nützliche Blocktypen bereits definiert. Die Tagnummern von 0 bis 511 sind für zukünftigen
Gebrauch reserviert. Die Tagnummern von 512 bis 1023 sind für 3rd-party-Anwendungen reserviert.
Bei den Tags wird zwischen zwei verschiedenen Typen unterschieden: 1. definierende Tags, welche Formen, Bitmaps,
Buttons, Texte, Schriften und Sounds definieren und 2. Steuerungs-Tags, welche die Abläufe in eine Flash-Film
steuern. Steuerungs-Tags werden zum Beispiel verwendet, um Objekte auf dem Bildschirm zu bewegen, Frames zu zeigen und Sounds zu abzuspielen. Das End-Tag wird verwendet, um das Datei-Ende zu signalisieren.
Die anzuzeigenden Objekte haben jeweils eine Tiefen-Nummer, welche bei Null beginnt und dann inkrementiert wird.
Jedes Objekt hat dabei seine eigene Tiefen-Nummer.
Ein Flash-Film ist wie eine Matrix aufgebaut, die bei einem typischen 72 dpi Display pro Pixel noch mal in 20
Untereinheiten aufgeteilt ist. Dieses ermöglicht das Hereinzoomen in den Film und eine präzise Positionierung der
Objekte.

Dateikomprimierung:
Die Elemente in einer SWF-Datei werden wiederverwendet. Sie werden Einmal definiert und danach wird ggf. nur die
Position geändert. Es wird eine Vielfalt an Komprimierungstechniken benutzt: Ein Bitmap wird Beispielsweise als JPEG
gespeichert. Sounds werden nach dem ADPCM (Adaptive Differential Pulse Code Modulation) - Verfahren gespeichert.
Figuren werden in einem sehr effizienten Summenkodierungssystem komprimiert. Wenn immer es möglich ist, werden
Zahlen im Effizientesten Bit-Raum zusammengefaßt. In SWF-Dateien werden nur die Veränderungen von Objekten
gespeichert. Komprimiert wird nicht die Datei im ganzen, sondern die einzelnen Elemente, welche dekomprimiert werden, sobald sie gebraucht werden.


 


Entstanden im Jahre 2002 - 2003 :-) | © Simon Wieckhorst & Gordon Heger