30.07.2012 Aufrufe

Leistungsoptimierung für die ADOBE FLASH-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />

Optimieren der Netzwerkinteraktion<br />

Angenommen, ein Benutzer hat Ihre Website von einem mobilen Gerät aus aufgerufen, aber <strong>die</strong> Netzwerkverbindung<br />

wird zwischen zwei U-Bahn-Haltestellen unterbrochen. Zu <strong>die</strong>sem Zeitpunkt wurde gerade ein dynamischer Bestand<br />

geladen. Da <strong>die</strong>ses Szenario auf einem Desktop praktisch nie auftritt, können Sie dort einen leeren Ereignis-Listener<br />

verwenden, um zu verhindern, dass ein Laufzeitfehler eingeblendet wird. Auf einem Mobilgerät ist ein leerer Ereignis-<br />

Listener dagegen unzureichend.<br />

Der folgende Code reagiert nicht auf einen E/A-Fehler. Verwenden Sie den Code nicht in der gezeigten Form:<br />

var loader:Loader = new Loader();<br />

loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onComplete );<br />

addChild( loader );<br />

loader.load( new URLRequest ("asset.swf" ) );<br />

function onComplete( e:Event ):void<br />

{<br />

var loader:Loader = e.currentTarget.loader;<br />

loader.x = ( stage.stageWidth - e.currentTarget.width ) >> 1;<br />

loader.y = ( stage.stageHeight - e.currentTarget.height ) >> 1;<br />

}<br />

Stattdessen sollte <strong>für</strong> eine derartige Fehlersituation eine Prozedur implementiert werden, <strong>die</strong> eine Fehlermeldung <strong>für</strong><br />

den Benutzer einblendet. Mit dem folgenden Code wird angemessen auf den Fehler reagiert:<br />

var loader:Loader = new Loader();<br />

loader.contentLoaderInfo.addEventListener ( Event.COMPLETE, onComplete );<br />

loader.contentLoaderInfo.addEventListener ( IOErrorEvent.IO_ERROR, onIOError );<br />

addChild ( loader );<br />

loader.load ( new URLRequest ("asset.swf" ) );<br />

function onComplete ( e:Event ):void<br />

{<br />

var loader:Loader = e.currentTarget.loader;<br />

loader.x = ( stage.stageWidth - e.currentTarget.width ) >> 1;<br />

loader.y = ( stage.stageHeight - e.currentTarget.height ) >> 1;<br />

}<br />

function onIOError ( e:IOErrorEvent ):void<br />

{<br />

// Show a message explaining the situation and try to reload the asset.<br />

// If it fails again, ask the user to retry when the connection will be restored<br />

}<br />

Es empfiehlt sich, dem Benutzer <strong>die</strong> Möglichkeit zu geben, den Inhalt erneut zu laden. Dieses Verhalten kann über <strong>die</strong><br />

onIOError()-Prozedur implementiert werden.<br />

Flash Remoting<br />

Verwenden Sie Flash Remoting und AMF <strong>für</strong> eine optimierte Client-/Server-Datenkommunikation.<br />

Sie können XML zum Laden von Remote-Inhalt in SWF-Dateien verwenden. Bei XML handelt es sich jedoch um<br />

reinen Text, der von der Laufzeitumgebung geladen und analysiert wird. XML eignet sich am besten <strong>für</strong><br />

Anwendungen, <strong>die</strong> nur eine eingeschränkte Inhaltsmenge laden. Bei der Entwicklung von Anwendungen, <strong>die</strong> große<br />

Mengen an Inhalt laden, sollten Sie <strong>die</strong> Flash Remoting-Technologie und das Action Message Format (AMF) in<br />

Betracht ziehen.<br />

Letzte Aktualisierung 9.5.2012<br />

86

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!