201128Jun

Google Swiffy: SWF-Dateien in HTML5 konvertieren

Die Entwicklung von und rund um Adobe Flash durchläuft interessante Prozesse: Während Adobe mit Wallaby ein Tool veröffentlicht hat, mit dem sich FLA-Quelldateien in HTML-Code umwandeln lassen, steuert Google nun mit Swiffy ein Werkzeug zur SWF-zu-HTML5-Konvertierung bei. Der Vorgang der Umwandlung erscheint schon fast etwas unheimlich, denn aus den SWF-Dateien wird ein komplexer JSON-Array erzeugt, der dann von der Swiffy-Bibliothek verarbeitet wird. Die eigentliche Logik wird wieder durch JavaScript repräsentiert. Hinsichtlich der Programmierung wird aktuell eine Schnittmenge von SWF 8 und ActionScript 2 unterstützt. Laut Google erhält man daher mit Flash 5 die besten Resultate. Voraussetzung für die umgewandelten Flash-Projekte ist ein WebKit-Browser (natürlich funktionieren die Swiffy-Demos auch unter Firefox).

Google Swiffy

Jetzt lässt sich nicht unbedingt jedes Flash-Game direkt in HTML5 umwandeln, aber die Beispiele zeigen schon sehr gut, was mit dem Google-Tool möglich ist. So werden durchaus ActionScript-Blöcke korrekt interpretiert und sollte eine Prozedur nicht konvertiert werden können, schlägt Swiffy Alarm und gibt eine Fehlermeldung aus.
Ein derartiges Projekt existierte bisher nur mit Gordon, einer Bibliothek, die ebenfalls durch SVG Flash-Anwendungen per JavaScript darstellt. Google schreibt in den FAQ von Swiffy übrigens auch, dass man mit Adobe in dieser Richtung weiter zusammenarbeiten möchte. Man darf also gespannt sein.

Kommentare

XHTML-Verfechter schrieb am 29.06.2011 #1

Ach ja, HTML5. Dieser Hype um das neue HTML geht mir langsam echt auf die Nerven. Vor allem, wenn HTML5 als Schlagwort für Produkte, die damit wirklich sehr wenig zu tun haben, verwendet wird, finde ich es ätzend!

In diesem Fall hätte jede beliebige andere (X)HTML-Version ihr übriges getan, aber nein – es musste ja mit HTML5 betitelt sein, weil sich das so gut anhört. Klingt doch gleich viel innovativer, frischer usw.. Dass es sich hier keinesfalls um eine bloße Konvertierung von SWF in HTML handeln kann, ist doch klar – HTML als Textauszeichnungssprache ist ja ohne Erweiterungen gar nicht fähig, überhaupt etwas zu animieren! Die Swiffy-Bibliothek tut doch nichts anderes, als aus dem bereits generierten JSON ein SVG zu erzeugen, welches dann mit Javascript animiert wird. Mit HTML5 hat das nichts zu tun!

Meine Kritik soll sich übrigens eher allgemein gegen die Vermarktung von HTML5 (und somit auch Google) richten, wenn auch dieser Artikel den Sachverhalt ebenfalls nicht ganz richtig wiedergibt.

Matthias schrieb am 30.06.2011 #2

Es ist durchaus richtig, dass HTML5 immer häufiger als Marketing-Argument verwendet wird. Ich persönlich setze HTML5 bisher auch nur mit Vorsicht ein und ich teile in dieser Hinsicht Deine Einstellung.

Was allerdings den Sachverhalt dieses Artikels angeht: Bezüglich der Konvertierung von SWF zu HTML5 scheinst Du den Vorgang nicht verstanden zu haben, denn der JSON-Array liegt natürlich noch nicht vor, sondern wird von Swiffy erst erzeugt! Und mit HTML5 hat die Umwandlung sehr wohl etwas zu tun, denn SVG gehört nun einmal zu dem Standard. Natürlich liegt die eigentliche Programmlogik in JavaScript vor, aber das steht auch im Artikel.

Ob Hype hin oder her, XHTML wurde nun einmal abgeschafft. Die Verbreitung von HTML5 wird noch eine ganze Weile dauern und JavaScript wird dabei immer ein zentrales Element bleiben.

XHTML-Verfechter schrieb am 30.06.2011 #3

Doch, ich denke, ich habe den Vorgang schon begriffen: Zuerst erzeugt Google aus dem hochgeladenen SWF das JSON-Objekt, welches in der ausgegebenen HTML-Datei statisch abgelegt wird – bei einem Aufruf derselben erzeugt das Swiffy-JS dann eine eingebettete SVG-Grafik aus dem dann bereits vorliegenden JSON (so meinte ich das), die dann animiert wird. Da habe ich mich wohl nicht ganz klar ausgedrückt.

Mit HTML5 hat die Umwandlung nur insofern etwas zu tun, als dass es als Container für das JS, das JSON und die SVG-Grafik dient. Ich weiß, SVG wurde komplett in HTML5 aufgenommen (was ich scheußlich finde – da es keine Namensraumtrennung gibt, können z.B. Probleme bei gleichnamigen Elementen/Attributen in SVG und HTML auftreten), das ist jedoch nur ein Rahmenaspekt. Hätte man XHTML verwendet (z.B. auch XHTML5, XHTML ist ja glücklicherweise noch nicht ganz tot!), würde man eben den Namensraum einbinden. Man hätte das ganze auch so umsetzen können, dass nur ein SVG ausgegeben wird, in welchem nur das JSON und das zugehörige JS steckt. Das wäre immer noch die selbe Vorgehensweise (JSON generieren → SVG durch JS erzeugen und animieren)! Darum meinte ich, dass die Behauptung falsch sei, man würde zu HTML5 konvertieren!

PS: Die Kommentare wären etwas übersichtlicher zu lesen, wenn die Absätze einen Zwischenabstand erhalten würden, also CSS:
.comment p { padding .5em 0; } oder ähnlich.

Matthias schrieb am 30.06.2011 #4

Ah, dann hatte ich Dich bezüglich des Vorgangs falsch verstanden. Dann hast Du es richtig gemeint.

Ich kann Deinen Aussagen eigentlich nichts mehr hinzufügen: Wie gesagt, ich bin Deiner Meinung, was die Abschaffung von XHTML angeht. Das Problem mit der Namensraumtrennung ist durchaus lästig, XHTML ist eben strikter. Ich denke aber, dass die Geschichte von HTML5 noch nicht zu Ende erzählt ist, da sich die Arbeitsgruppen ja noch nicht einig sind, wie die nachfolgenden Standards gehandhabt werden. Hier wird es wahrscheinlich überhaupt keine Versionsnummer mehr geben und wer weiß, vielleicht wird die Möglichkeit der Namensraumtrennung auch wieder eingeführt ;-)

Die Kommentare habe ich angepasst, jetzt sollte es besser aussehen!