20.01.2013 Aufrufe

XML » SVG Presenter - Carto:net

XML » SVG Presenter - Carto:net

XML » SVG Presenter - Carto:net

MEHR ANZEIGEN
WENIGER ANZEIGEN

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]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!