Tag: flash
Flash, JavaScript und HTML5: Gegenwart und Zukunft
Die Diskussion um Flash und dessen Einsatzgebiete dürfte unter Webentwicklern oft ein Streitpunkt darstellen. In der Regel findet der Dialog zwischen Flash-Evangelisten und Web-Standard-Veteranen statt — die Frage nach der Verwendung von Flash wird dementsprechend bewertet. Mit HTML5 werden sich in ferner Zukunft in diesem Bereich sicherlich einige Veränderungen zeigen. Man sollte HTML und Flash jedoch nicht als Konkurrenz, sondern als gegenseitige Ergänzung ansehen. Da ich Web-Projekte sowohl mit HTML/CSS als auch mit Flash realisiere, will ich den aktuellen Stand der Techniken beleuchten.

Zum einen stellen der Open Source-Gedanke und offene Standards wichtige Aspekte dar. Das Flash-Format ist proprietäre Closed Source-Software und wird dadurch als Holperstein im Bezug auf Web-Standards angesehen. Wie offen Flash im Vergleich zu HTML5 ist, wird zum einen in diesem Artikel beschrieben. Über diese Thematik gibt es im Netz mittlerweile etliche Diskussionen und Vorschläge. Zum aktuellen Zeitpunkt besteht die Tatsache, dass sich das Flash-Plugin auf nahezu jedem Computer mit Internetzugang befindet und Microsofts Trident-Engine noch mit über 50% am Browsermarkt vertreten ist. Wie sich diese Zahlen in der kommenden Zeit verändern werden, dürfte durch die Verbreitung von HTML5/CSS3 und modernen Webbrowsern ersichtlich sein.
Weiterlesen...Flash: Tipps zur Optimierung von ActionScript 3
Zum Freitag gibt es heute einen Link-Tipp für Flash-Entwickler: Kuba Gaj hat auf seinem Blog kürzlich einen sehr schönen Artikel über die Optimierung von AS3-Code veröffentlicht, in dem er generelle Tipps für einen guten Stil gibt. Dazu zählen verschiedene Themen wie Objekte, Arrays, Klassen oder allgemeine Hinweise. Die Anleitung wurde unter dem Aspekt erstellt, die Performance von Flash-Projekten zu verbessern. Flash-Anwendungen können schnell viele Ressourcen verschlingen und durch eine unbedachte Programmierung kann es dazu führen, dass Spiele oder andere Anwendungen auch auf modernen Computersystemen langsam ablaufen.

So sollte stets darauf geachtet werden, dass keine unnötigen "enterFrame"-Events oder Timer laufen. ActionScript 3 ist in vielen Aspekten besser und durchdachter als Version 2. Der Umstieg empfiehlt sich in jeder Hinsicht, auch wenn manche Funktionen mit AS3 etwas mehr Code benötigen als in AS2. Für Umsteiger empfehle ich das ActionScript 3 Migration Cookbook und auch die Coding Conventions von Adobe sind lesenswert.
Flash: Notepad++ als Code-Editor benutzen
Beim Entwickeln von Flash-Anwendungen kann es von Vorteil sein, wenn der favorisierte Code-Editor für ActionScript genutzt werden kann. Der Editor von Adobe Flash Professional bietet seit Version 9 (CS3) nützliche Funktionen wie beispielsweise die "Zusammenfassen"-Funktion — durch einen Klick wird markierter Code in einer Zeile zusammengefasst und kann per "+" wieder ausgeklappt werden. Dadurch behält man auch bei größeren Projekten den Überblick.
Dennoch bietet der eingebaute Editor der Flash-Entwicklungsumgebung nicht alle Funktionalitäten, die ein moderner Code-Editor beinhaltet. Der "SEPY Actionscript Editor" stellt in jedem Fall eine empfehlenswerte Alternative für komplexere Flash-Applikationen dar. Wer die Shortcuts und Funktionalitäten von Notepad++ auch in ActionScript nicht missen möchte, kann den beliebten Editor einfach verwenden. Die Syntax-Hervorhebung für ActionScript ist bereits integriert. Eine wichtige Funktionalität ist allerdings nicht vorhanden: Das Kompilieren des geöffneten Flash-Projekts. Dieser Vorgang wird in der Flash-IDE durch STRG + RETURN durchgeführt ("Film testen"). Mit einem Trick lässt sich auch diese Funktion in Notepad++ nutzen.

Adobe Flash unterstützt JSFL-Skripts (JavaScript Flash), durch die eigene Befehle in der Entwicklungsumgebung ausgeführt werden können. In Flash kann diese Möglichkeit unter Anderem über das Menü "Befehle" verwendet werden. Mehr dazu in den Adobe LiveDocs. Zudem kann der Flash-Umgebung als Parameter ein JSFL-Skript übergeben werden, durch das so auch die "Film testen"-Funktion in Notepad++ eingebaut werden kann.
Weiterlesen...TuneGlue: Ähnliche Künslter grafisch darstellen
Zum Freitag gibt es diesmal etwas Musikalisches: Amazon und Last.fm haben eine interaktive Flash-Anwendung ins Leben gerufen, mit der es möglich ist, Verknüpfungen zwischen Musikern und Bands auf einer Karte (Music Map) darzustellen. Das Projekt nennt sich TuneGlue und funktioniert sehr gut. Die Daten werden durch die "Ähnliche Künstler"-Funktion von Last.fm grafisch dargestellt. Nach der Eingabe des gewünschten Künstlers kann per Optionsmenü der erste Knotenpunkt erweitert werden. Daraufhin werden verwandte oder musikalisch ähnliche Künstler als weitere Knotenpunkte dargestellt. Mit dieser Methode können sehr tiefe Verzweigungen dargestellt werden.

Weiterhin ist es möglich, die veröffentlichten Alben der Künstler anzuzeigen. Dabei werden Informationen aus der Amazon-Datenbank abgerufen. Zudem können die physikalischen Animationen in ihrer Spannung (Friction) und Elastizität (Elasticity) angepasst werden.
Das Projekt wurde von den Flash-Altmeistern bei Onyro umgesetzt.
Adobe Open Source: Viele Frameworks für Entwickler
Dynamische und interaktive Online- oder Offline-Anwendungen lassen sich mit der Werkzeugpalette von Adobe sehr gut realisieren. Wer Flash-, Flex- oder AIR-Projekte umsetzt und bestimmte Komponenten oder Funktionen benötigt, sollte sich die Seite "Adobe Open Source" ansehen. Dort finden sich diverse Open Source-Frameworks, die inklusive Dokumentationen zur Verfügung gestellt werden. Dabei handelt es sich hauptsächlich um ActionScript-Bibliotheken, die viele nützliche Funktionalitäten mit sich bringen.

Die Bibliothek "AS3CoreLib" beinhaltet beispielsweise Algorithmen zur Verschlüsselung (MD5, SHA-1), Bildkodierung oder JSON-Verarbeitung. Das "Text Layout Framework" bietet umfangreiche Möglichkeiten zur Ausrichtung und Transformation von Textblöcken. Auch das Tamarin-Projekt von Mozilla verspricht, interessant zu werden.
ActionScript-Entwickler sollten die Seite also genau wie Adobe Labs im Auge behalten, da hier in regelmäßigen Abständen Updates erfolgen.
Gordon: Flash-Animationen mit JavaScript darstellen
Es ist faszinierend, mit welchen Tricks Entwickler immer wieder Grenzen durchbrechen. Tobias Schneider hat eine experimentelle Flash-Runtime namens Gordon in JavaScript geschrieben, die mithilfe der SVG-Technik Flash-Animationen im Browser darstellt. Ein SWF-Film wird also per JavaScript geladen und durch das Skript dargestellt.

Die Implementierung der Gordon-Runtime funktioniert relativ einfach, da die Parameter selbsterklärend sind:
- new Gordon.Movie("file.swf", {id:"stage", width:320, height:240});
Der Webentwickler Paul Irish stellt die Demos bereit und bei GitHub kann der komplette Quellcode des Projekts eingesehen werden.
Die Runtime ist in erster Linie für Flash-Animationen und weniger für komplexe Flash-Anwendungen mit ActionScript-Code gedacht. Leider funktioniert das Skript nicht unter Internet Explorer — dafür können aber mit Gordon Flash-Filme auf dem iPhone (mobiler Safari-Browser) abgespielt werden. Die Geschwindigkeit der Bewegungen lässt an manchen Stellen noch zu wünschen übrig, aber dennoch könnte das ein interessanter Ansatz für SWF-Animationen auf dem Apple-Smartphone sein.
Adobe Flash CS5: Doch keine Beta-Version
Adobe hat auf dem Flash Platform Blog und der Adobe Labs-Seite der kommenden Flash-Version bekannt gegeben, dass es nun doch keine öffentliche Beta von Flash Professional CS5 geben wird. Der Softwarekonzern aus Kalifornien will sich darauf konzentrieren, die neue Version der Entwicklungsumgebung für Flash-Anwendungen so schnell als möglich zu veröffentlichen. EIne Beta war für Ende des Jahres geplant.

Ein Hauptgrund für diese Entscheidung sei das bereits positiv ausgefallene Feedback der iPhone-Anwendungen gewesen, die veröffentlicht wurden, um die Möglichkeiten von ActionScript 3 auf dem iPhone zu demonstrieren. Die Möglichkeit, mit Flash CS5 iPhone-Anwendungen zu entwickeln, sorgte vor einiger Zeit für den Knalleffekt.
Man darf gespannt sein, wann die neue Version von Flash erscheinen wird. Neben dem "Packager for iPhone" soll es weitere Verbesserungen geben wie ein optimierter Code-Editor, XML-basierte FLA-Projekte, ein Snippet-Panel und eine Integration des Flash Builders.
CopperCube 3D: Spiele und Panoramen erstellen
Kürzlich bin ich über die Firma Ambiera gestolpert, die mich mit ihrem Angebot sehr beeindruckt hat. Die Softwareschmiede aus Österreich hat sich auf Multimedia-Anwendungen bzw. Spiele spezialisiert und bietet hierfür neben eigenen Dienstleistungen (Programmierung) auch interessante Werkzeuge zur Erstellung von interaktiven Flash-Applikationen an: Mit CopperCube lassen sich derartige Projekte ohne Programmierkenntnisse konzipieren und als Flash-Film exportieren — der Editor stellt praktisch eine fertige 3D-Engine bereit, die nur noch mit Inhalt gefüllt werden muss. CopperCube ist also eine Art Level- oder Map-Editor, mit dem sowohl Umgebungen für Spiele als auch dynamische Panorama-Anwendungen erstellt werden können. Wer schon mit 3D-Anwendungen oder Spiele-Editoren wie GtkRadiant gearbeitet hat, wird sich in CopperCube schnell zurechtfinden.

Komplexe 3D-Modelle können in externen Programmen wie 3ds Max oder Blender erstellt und anschließend importiert werden. Der Editor kann etliche 3D-Formate importieren oder exportieren (3DS, OBJ, DAE, LWO, STL, MD2, uvm.) und bietet zudem eine komplette Scripting- und Event-Umgebung an, mit der sich künstliche Intelligenz hinzufügen lässt. Die Demos auf der Website sprechen für sich.
Das Programm kostet als Einzelplatzlizenz 119 EUR und kann mithilfe der Dokumentation schnell erlernt werden. Ambiera bietet weitere Produkte wie die Sound-Bibliothek irrKlang oder den ActionScript-Obfuscator irrFuscator an, der für 69 EUR zu haben ist.
Insgesamt ist die Produktpalette sehr interessant, da sich aufwendige Multimedia-Projekte relativ einfach realisieren lassen. Die Panorama-Funktion ist genial, denn die fertige Flash-Animation beinhaltet Benutzerelemente zur Steuerung des Panoramas und kann sofort eingesetzt werden.