Flash Experiment – Pixelhole

Ein weiteres Experiment, das ein Bild auf Pixelbasis animiert. In Bezug auf die Mausposition zum jeweiligen Pixel wird eine Verschiebung generiert. Einfach klicken und ausprobieren:

This movie requires Flash Player 9

Flash Experiment – Curving

Ein kleines Experiment unter Verwendung eines Zusatzpackages von Lee Brimelow. Es wird alle 50 Millisekunden eine neue Linie mit zufälliger Farbe, Position und Winkel erzeugt und animiert. Um die Performance nicht ins unermessliche zu belasten, werden fertig animierte Linien auf ein BitmapData reduziert und von der DisplayList genommen.

This movie requires Flash Player 9

Flash Experiment – Lines

Ein kleines Flash-Experiment das knapp 1300 gebogene Linien mittels der Graphics Klasse zeichnet. Diese Linien werden dann aber nicht dem DisplayStack hinzugefügt, sondern über BitmapData.draw in ein Bitmap-Objekt gezeichnet. Damit ist eine relativ performate Animation möglich.

This movie requires Flash Player 9

Baut man diese Animation weiter aus, kann man die Überlagerungen und Alpha-Werte dazu nutzen, einen DisplacementMapfilter zu verwenden. Durch dessen Einsatz bekommt die Animation einen fluiden Eindruck.

This movie requires Flash Player 9

Video Snapshot in Flash

Wie schon ein paar mal berichtet, bietet Flash mit den Bitmap- und BitmapData-Klassen sehr viele Möglichkeiten im Umgang mit Grafiken. Diese können in vielen erdenklichen Weisen modifiziert und verändert werden. Die Möglichkeiten dieser beiden Klassen sind damit aber noch nicht ausgeschöpft.

Vielmehr lassen sich mit diesen auch Snapshots von Videos erstellen. Dazu wird zunächst eine Videokomponente erstellt in der ein Video abgespielt wird. Wird nun der Event zum Erstellen eines Snapshots ausgelöst, wird zunächst ein BitmapData-Objekt in der Größe des Videoobjektes erstellt. In dieses wird dann das Video über die draw-Methode gezeichnet. Damit ist der größte Aufwand vollzogen. Das BitmpData-Objekt kann nun über addChild einem anderen Objekt zugewiesen werden.

Vielmehr als die oben beschriebenen Schritte sind nicht nötig um Snapshots von Videos zu erstellen. Obwohl es nur ein sehr kurzes Beispiel ist, lässt sich abschätzen, wie vielseitig anwendbar dieser Ablauf ist. So lassen sich nicht nur Videos capturen, sondern auch andere, auf der Bühne befindliche Szenerien „fotografieren“. Denkbar wäre auch, ein 3D-Model über Papervision3D einzubinden und zu animieren, um so ein virtuelles Fotoshooting zu inszinieren.

Über eine Kombination mit weiteren Funktionen von Flash lassen sich die erstellten Bilder auch nachbearbeiten. Auch eine Kombination mit PHP ist möglich, welches ein JPG aus den Bitmap-Daten generiert, was wiederum heruntergeladen werden kann.

Beispiele:
campaigns.mykindaplace.com/superman
www.fullofpotential.ca

Flash: ColorTransform of Pictures

Bilder in Flash nachzubearbeiten ist in gewissen Grenzen möglich. Eine Anwendung dessen wird zum Beispiel bei Konfiguratoren verwendet. Will man etwa einem 3D-Modell eines Autos eine andere Farbe geben, ist es nicht nötig das Bild mit anderer Farbe neu zu laden, sondern man kommt mit den Flash-Internen Funktionen aus.

Das Färben von Flächen ist mittels 3D-Bildern relativ einfach. Dazu werden die 3D-Bilder als MultiPass herausgerendert und in Photoshop für Flash aufbereitet. In Flash CS3 können diese Bilder dann importiert werden und behalten dabei ihre Ebenensets und Mischmodi. Eine Ebene dieses Bildes ist dann die Farbebene des 3D-Objektes. Diese wird in Flash dann als Bitmap umgerechnet, da der hier verwendete ColorTransform nur für Bitmaps verwendbar ist. Das Bitmap wird dann im einem Movieclip gekapselt, um es per Script ansprechen zu können.

Für die eigentliche Farbgebung sind die beiden Klassen ColorTransform und Transform in Flash zu importieren. Zunächst wird dann ein neues Objekt von Typ ColorTransform erzeugt und mit der rgb-Zielfarbe gefüllt. Ein weiteres Objekt ist das Transform Objekt. Diesem wird der Ziel-MovieClip mitgegeben, welcher das Bitmap zum Färben enthält. Durch die schlichte Zeile "transformObject.colorTransform = colorTransformObject;“ wird dann das eigentliche Färben ausgelöst. Damit bekommt das 3D-Objekt eine neue Füllfarbe, behält aber durch das Beibehalten der entsprechenden Ebenen aus dem MultiPass-Rendering seine Form und sein ursprüngliches Aussehen. Vorteile dieses Verfahren liegen vor allem bei der geringeren Dateimenge, bzw dem geringerem Traffic, so wie der Möglichkeit für den User seine Änderungen in Echtzeit zu sehen.