Error-proofing in Flash Remoting
Für die Uni entwickle ich gerade Flash-basierte Spiele für mobile Geräte - N800 Internet Tablets von Nokia (die ziemlich lecker sind!).
![]()
Bild ausgeliehen von rnair
Für die Kommunikation mit dem Backend nutzen wir WebOrb und Flash Remoting. Das ist die einzige Variante, die nicht weh tut.
Da diese Geräte sich aber potentiell nicht immer in Reichweite eines Wlan befinden, können wir uns nicht auf ständige Verbindung mit dem Server velassen. Das ist eine Sache, die Rico und mir jedoch heute so langanhaltend Kopfschmerzen bereitet hat, dass ich die Lösung hier lieber mal poste und dem Nächsten, der drauf stösst wünsche, dass Google diese Seite möglichst rasch mal indiziert.
Das Problem
Kurz und schmerzlos: die AS-Connection Klasse aus mx.remoting ist ein ausgesprochener Optimist. Es wird stets davon ausgegangen, dass das Remoting Gateway erreichbar ist. Eigentlich ist es unfassbar. Es gibt keinerlei Connection-Test. So ist es natürlich auch nur logisch, dass man in eine Flash-Exception "Error opening URL ..." läuft.
Die Lösung
Das die Connection Klasse kein onStatus publiziert, wenn das Gateway nicht erreicht werden kann, muss man dieses Verhalten nach implementieren:
Änderungen an der Connection Klasse:
- Initialisieren von
ASBroadcaster - Dispatch
onStatusevent
Änderungen an der Service Klasse:
- Anmelden als Listener für die Events der
ConnectionKlasse
Eine genaue Beschreibung, wie das ziemlich einfach geht hat Caleb Adam Haye zusammengetragen, dessen Artikel wir leider VIEL zu spät gefunden haben.





