XML » SVG Presenter - Carto:net
XML » SVG Presenter - Carto:net
XML » SVG Presenter - Carto:net
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>XML</strong> <strong>»</strong> <strong>SVG</strong> PRESENTER | STRUKTURIERTE MULTIMEDIA-PRÄSENTATION IM WEB 99<br />
automatisch erkennen sollte, sind beispielsweise Füllungen in Flash stets entlang einer Linie realisiert, d.h.<br />
statt eine Füllfarbe für das Gesamtobjekt zu bestimmen, können (und müssen) für jede Linie Füllfarben<br />
und Stilattribute für jeweils die rechte und die linke Kantenseite angegeben werden [vgl. Prob01]. Auch<br />
werden Kurven nicht wie aus PostScript gewöhnt mittels zweier „Anfasser“ (control points) in ihrer Krümmung<br />
determiniert, sondern mittels des so genannten „quadratischen Bézier“-Verfahrens, welches zwar lediglich<br />
einen Kontrollpunkt erfordert, das Zeichnen auch simpler Formen jedoch erheblich erschweren<br />
kann:<br />
[Flash’s] use of quadratic Béziers makes it a bit of a pig to draw circles, arcs and all curved forms.<br />
[Katz00]<br />
4.5.3.3 Dateizugriff<br />
4.5.3.3.1 Das Macromedia-SDK<br />
Da eine mögliche Erstellung oder gar Weiterverarbeitung Flash-basierter Daten aufgrund der Binär-<br />
Eigenschaft des SWF-Formates, des unkonventionellen Grafikmodells [s.4.5.5.3.2] sowie der „Frame-<br />
Fragmentierung“ einzelner, diskreter Grafikobjekte und Transformationen schnell aufwendig und komplex<br />
geraten kann, hielt sich unmittelbar nach der Erstveröffentlichung der überdies unvollständigen und teils<br />
fehlerhaften 1 SWF-Spezifikation der Enthusiasmus der Entwicklerschaft noch deutlich zurück: Lediglich<br />
zwei in ihrem Leistungsspektrum recht überschaubare C-Implementierungen – ironischerweise gleich beide<br />
unter dem Titel LibSWF [Haeb99, Agui00] – ermöglichten auf Basis der Spezifikation eine rudimentäre, für<br />
professionelle Belange jedoch unzureichende Erzeugung dynamischer Flash-Dateien. Um das SWF-Format<br />
jedoch auch für „Dritt-Entwickler“ (3rd-Party-Developers) attraktiv zu machen, veröffentlichte Macromedia<br />
2 aufgrund dessen Anfang 2000 das so genannte SWF Software Development-Kit (kurz: SWF-SDK), das neben<br />
einer schlüssigen Formatdokumentation den direkten (wenn auch nur schreibenden) Zugriff auf Flash-<br />
Dateien nun endlich auch mittels einer direkten Programmierschnittstelle (in diesem Falle C ++ ) ermöglichte.<br />
Neben dem so genannten „Low Level Manager“, der die einzelnen Definitions- und Control-Tags lediglich<br />
in einzelne Klassen „verpackte“, umfasste das SWF-SDK darüber hinaus auch den so genannten „High-Level-<br />
Manager“, welcher für die Erstellung Flash-basierter Grafiken und Animationen im Rahmen einer höheren<br />
Abstraktionsschicht eine konzeptionell durchaus gelungene Syntax bereitstellt. Unter Anwendung dieses<br />
Toolkits lassen sich somit bereits anhand weniger Codezeilen interessante, direkt ablauffähige Flash-Filme<br />
erstellen:<br />
#include <br />
int main() {<br />
HFMovie movie = HFMovie(); // erzeuge einen neuen Flash-Film (300*300 Pixel)<br />
movie.SetSize(6000, 6000);<br />
movie.SetFrameRate(3);<br />
HFRectangle* rect1 = new HFRectangle(0,0,2000,2000); // drei Rechtecke<br />
HFRectangle* rect2 = new HFRectangle(1000,1000,3000,3000);<br />
HFRectangle* rect3 = new HFRectangle(2000,2000,4000,4000);<br />
rect1->SetSolidFill(Red_RGBA); // setze die Füllfarben<br />
rect2->SetLinearFill(Blue_RGBA, Black_RGBA);<br />
rect3->SetRadialFill(Yellow_RGBA, Violet_RGBA);<br />
rect1->SetDepth(1); // platziere Rechtecke übereinander<br />
rect2->SetDepth(2);<br />
rect3->SetDepth(3);<br />
movie.Frame(0)->addObject(rect1); // füge Rechtecke zu 1. Schlüsselbild hinzu<br />
movie.Frame(0)->addObject(rect2);<br />
movie.Frame(0)->addObject(rect3);<br />
movie.Frame(1)->RemoveObject(rect3); // r.3 dreht sich um eigenen Mittelpunkt<br />
rect3->Rotate(FloatToFixed(30.0));<br />
1 vgl. [Star01] p.12<br />
2 Anm: Hersteller des SDKs war eigentlich das wie Macromedia in San Francisco angesiedelte Softwarehaus Middlesoft. [vgl. BEng00]