In einem weiteren Beitrag aus der Reihe Flex 4 SDK geht es heute um FXG.

Flex Gumbo FXG

Mit Flex 4 führt Adobe den FXG 1.0 Standard ein. FXG soll als XML-basiertes grafisches Austauschformat für die Flash-Plattform dienen. Dazu enthält es verschiedene Typen an Text- und Grafikelementen, die Vektor- und Bitmapgrafiken erstellen, gruppieren oder verändern können. Die Abbildung zeigt einige Beispiele, die ich nur über das Schreiben von XML-Code erstellt habe.

FXG wird eine wichtige Grundlage für Flash Catalyst sein, das kommende Designertool von Adobe. Dadurch wird es mit einer visuellen Herangehensweise möglich sein, Flex-Anwendungen zu gestalten und dabei automatisch im Hintergrund den entsprechenden Flex-Code kreiieren zulassen.

Außerdem ist FXG ein wichtiger Baustein für das Skinning von Komponenten. Wer Degrafa kennt, weiß wie hilfreich das Zeichnen per MXML-Code sein kann.

Technischer Hintergrund zu FXG

Die Renderingmodell für FXG ist im Aufbau wohl recht eng am Flash Player 10 orientiert. Deshalb wurde auch nicht das bereits ältere SVG-Grafikformat verwendet, da dieses zu weit abweicht. SVG wäre naheliegend gewesen, da es sich ebenfalls um ein XML-basierte Format handelt. Allerdings wurde nach Möglichkeit in FXG auf bekannte Prinzipien von SVG zurückgegriffen.

Interessant zu wissen: FXG soll trotz der Anlehnung an den Flash Player 10 auch mit dem Flash Player 9 angezeigt werden können. Einige Funktionalitäten sind dann weniger performant oder es wird mit Annäherungen gearbeitet.

Some features of FXG rely on rendering and API enhancements added in Flash Player 10, and will degrade gracefully when compiled for Player 9. In some cases, the rendering is correct, but less optimized. In some cases, the rendering is a best approximation.

Basiselemente von FXG

FXG bietet drei Basiselemente, die dargestellt werden können:

  • Shapes (Kombination von Linien und Bögen/Kurven, also Rechteck, Ellipse, Pfade, Linien)
  • Text
  • Raster images (Bitmapgrafiken)

Bereits Mitte 2008 hatte ich mit dem Artikel Flex 4: Neue Grafik-Library (Rect, Ellipse, Path, Line, TextGraphic) einen ersten Ausblick auf FXG gegeben. Die Codebeispiele dürften allerdings mittlerweile nicht mehr 1:1 in den aktuellen Builds von Flex funktionieren.

In den kommenden Beiträgen wird es einige Beispiele zu den aufgelisteten Elementen geben. Stay tuned …

Link: FXG Specifications