Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
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