Flash wird von mehr Prozessorarchitekturen unterstützt

Gestern war der Tag der Ankündigungen bei Adobe.

  1. Es wird endlich ein 64bit-Plugin für Linux, Windows und MacOSX geben. Wobei der Anfang mit einer alpha-Version für Linux gemacht wird. Im kommenden Frühjahr sollen dann alle Versionen gemeinsam released werden.
  2. Flash inklusive AIR werden auf die ARM-Plattform portiert, womit sie auf der Mehrzahl der aktuellen Mobiltelefone und anderen Mobilgeräte (z.B. auch iPhone und iPod) lauffähig werden.

Vermutlich wird sich letzeres als der wichtigste Schritt in die Richtung der Zukunft von Flash erweisen. Damit wird sich ein extrem breites Anwendungsfeld für Flashapplikationen auftun und die Entwicklung von Handyapplikationen wird sich enorm vereinfachen.

Ich bin gespannt.

Typsicheres speichern in Local Shared Objects

SharedObjects (Local SharedObjects) können aud vielfältige Weise benutzt werden, um Daten auf dem Rechner eines Users abzulegen. Meist handelt es sich dabei um einfache Statusinformationen oder ein paar Settings. Eigentlich sind SharedObjects aber dafür gedacht, es verschiedenen Anwendungen aus einer Domain zu ermöglichen Daten untereinander auszutauschen.

Verständlich aber ärgerlich ist dabei, daß eine Anwendung zwar sämtliche Datentypen erst mal in das local SharedObject (LSO) speichern kann, die lesende Anwendung jedoch bei komplexen Datentypen jedoch die gesamte Struktur nur als Typ „Object“ interpretiert. Beim lesen der Daten muss man sich folglich mit untypisierten Objekten herumschlagen oder diese wieder mittels einer parsing-Routine in korrekte komplexe Datentypen umwandeln.

Das ist jedoch nicht nötig, wenn man diese komplexen Datentypen mit zuästzlichen Meta-Informationen versieht. Das funcktioniert genau so wie beim Austausch von Daten mit einem Webservice oder einem Flash-Media-Server. Die betreffenden Klassen bekommen einfach in ihrer Klassendefinition ein Metatag [RemoteClass(alias="de.aboutflash.vo.MyType")] mit einem Alias. In der Zielanwendung muss man nun nur noch mittels registerClassAlias dieses Alias auf eine entsprechende Klasse mappen.
flash.net.registerClassAlias("de.aboutflash.vo.MyType", de.aboutflash.vo.MyType);

Ab sofort kann die lesende Anwendung diese Datentypen wieder so interpretieren wie die Schreibende.

Ich habe dazu ein kleines Beispiel angelegt, welches ihr euch hier anschauen könnt.
Beispielanwendungen: normale vs. typsichere Local SharedObjects