|
#include <HF3SDK.h> int main() { // erzeuge einen neuen Flash-Film HFMovie movie = HFMovie(); // setze die groesse auf 300*300 Pixel // Angaben in TWIPS=>6000*6000 movie.SetSize( 6000, 6000 ); // drei Bilder pro Sekunde movie.SetFrameRate( 3 ); // ein Rechteck (FPIXEL = 20, Umrechnung Pixel nach TWIPS) HFRectangle* rect = new HFRectangle( 20*FPIXEL,20*FPIXEL, 120*FPIXEL,120*FPIXEL ); // ein Kreis HFCircle* circle = new HFCircle( 80*FPIXEL,50*FPIXEL,40*FPIXEL ); // setze die Fuellfarben rect->SetLinearFill( Blue_RGBA, Black_RGBA ); circle->SetRadialFill( Yellow_RGBA, Violet_RGBA ); // platziere Objekte uebereinander rect->SetDepth( 1 ); circle->SetDepth( 2 ); // fuege Objekte zu erstem Schluesselbild hinzu movie.Frame( 0 )->AddObject( rect ); movie.Frame( 0 )->AddObject( circle ); // rect dreht sich um den eigenen Mittelpunkt movie.Frame( 1 )->RemoveObject( rect ); rect->Rotate( FloatToFixed( 30.0 ) ); movie.Frame( 1 )->AddObject( rect ); movie.Frame( 2 )->RemoveObject( rect ); rect->Rotate( FloatToFixed( 60.0 ) ); movie.Frame( 2 )->AddObject( rect ); // schreibe die SWF-Datei und beende das Programm movie.WriteMovie("HFExample.swf"); delete rect; delete circle; return( 0 ); } |
Durch das SWF-SDK ist es nun möglich, Flashfilme
zu programmieren, völlig losgelöst vom Flash Studio, mit dem im
allgemeinen Flashfilme erstellt werden. Allerdings ist diese Art
der Flashfilmerstellung recht aufwendig, wenn man z.B. bedenkt, daß
für eine Wetterprognose täglich ein Film erstellt werden soll. Jeder Film muß
einzeln programmiert werden. Falls sich also in einem Film
lediglich die Farbe eines Objektes ändern soll, muß der
Quellcode des Programms geändert und neu kompiliert werden. Dies
ist keine sehr effektive Vorgehensweise, vor allem wenn man
bedenkt, daß bei der Entwicklung eines Flashfilmes häufig
Änderungen vorgenommen werden, da z.B. die Größe oder Farbe
eines Objektes noch nicht ganz genau den Vorstellungen des
Entwicklers entspricht.
Damit die Erstellung eines Flashfilmes auf Basis des SWF-SDKs
komfortabler vonstatten geht, wäre es denkbar eine Art
Generator9 zu implementieren, der ein Datenformat
einliest und dann zu einem Flashfilm umwandelt. Sollten sich dann
Änderungen ergeben, sind diese nur in der Datei durchzuführen und
es ist kein Neukompilieren mehr notwendig. Wie ein derartiger
Generator aufgebaut sein kann, wird in Kapitel
6.3 beschrieben.
Da das von Macromedia zur Verfügung gestellte SDK in C++
entwickelt wurde, muß auch der
Generator in C++ entwickelt werden, oder gibt es andere Möglichkeiten?
Wenn ein Entwickler das SDK nutzen möchte, aber nicht in der
Programmiersprache C++ programmieren will, ist dies auf den ersten
Blick nicht möglich. Dies ist aber vielleicht wünschenswert, da andere Programmiersprachen
für die zu entwickelnde Anwendung besser geeignet sind, so z.B. die Entwicklung
in Java, weil Java eine plattformunabhängige, leicht zu erlernende Programmiersprache ist, das Java
Development Kit zur freien Verfügung steht oder dem Entwickler
Java persönlich lieber ist als die Entwicklung in C++. Es wäre
also erstrebenswert das SWF-SDK für Java zugänglich zu machen,
was mit dem Java Native Interface möglich ist. Dies ist ein
Bestandteil dieser Diplomarbeit und wird in den Kapiteln
4 und 6.1 beschrieben.