15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verarbeiten HTML-bezogener Ereignisse in AIR<br />

Entfernen von Ereignisprozeduren<br />

Adobe AIR 1.0 und höher<br />

Mit der removeEventListener()-Methode können Sie einen Ereignis-Listener entfernen, den Sie nicht mehr<br />

benötigen. Es empfiehlt sich, alle nicht mehr benötigten Listener zu entfernen. Erforderliche Parameter sind<br />

eventName und listener, die identisch sind mit den erforderlichen Parametern für die addEventListener()-<br />

Methode.<br />

Entfernen von Ereignis-Listenern auf navigierenden HTML-Seiten<br />

Adobe AIR 1.0 und höher<br />

Wenn HTML-Inhalt Navigationsvorgänge ausführt oder wenn HTML-Inhalt verworfen wird, da das Fenster mit dem<br />

Inhalt geschlossen wird, werden die Ereignis-Listener, die auf Objekte auf der entladenen Seite verweisen, nicht<br />

automatisch entfernt. Wenn ein Objekt ein Ereignis für eine Prozedur auslöst, die bereits entladen wurde, wird die<br />

folgende Fehlermeldung angezeigt: „The application attempted to reference a JavaScript object in an HTML page that<br />

is no longer loaded.“ (Die Anwendung hat versucht, auf ein JavaScript-Objekt auf einer HTML-Seite zu verweisen, die<br />

nicht mehr geladen ist.)<br />

Um diesen Fehler zu vermeiden, entfernen Sie JavaScript-Ereignis-Listener auf einer HTML-Seite, bevor sie entladen<br />

wird. Bei der Seitennavigation (in einem HTMLLoader-Objekt) entfernen Sie den Ereignis-Listener während des<br />

unload-Ereignisses des window-Objekts.<br />

Mit dem folgenden JavaScript-Code wird ein Ereignis-Listener für ein uncaughtScriptException-Ereignis entfernt:<br />

window.onunload = cleanup;<br />

window.htmlLoader.addEventListener('uncaughtScriptException', uncaughtScriptException);<br />

function cleanup()<br />

{<br />

window.htmlLoader.removeEventListener('uncaughtScriptException',<br />

uncaughtScriptExceptionHandler);<br />

}<br />

Damit der Fehler nicht beim Schließen von Fenstern mit HTML-Inhalt auftritt, rufen Sie eine Bereinigungsfunktion<br />

als Reaktion auf das closing-Ereignis des NativeWindow-Objekts (window.nativeWindow) auf. Mit dem folgenden<br />

JavaScript-Code wird ein Ereignis-Listener für ein uncaughtScriptException-Ereignis entfernt:<br />

window.nativeWindow.addEventListener(air.Event.CLOSING, cleanup);<br />

function cleanup()<br />

{<br />

window.htmlLoader.removeEventListener('uncaughtScriptException',<br />

uncaughtScriptExceptionHandler);<br />

}<br />

Sie können diesen Fehler auch verhindern, indem Sie einen Ereignis-Listener entfernen, sobald er ausgeführt wird<br />

(falls das Ereignis nur einmal verarbeitet werden muss). Mit dem folgenden JavaScript-Code wird zum Beispiel ein<br />

Html-Fenster erstellt, indem die createRootWindow()-Methode der HTMLLoader-Klasse aufgerufen und ein<br />

Ereignis-Listener für das complete-Ereignis aufgerufen wird. Wenn die complete-Ereignisprozedur aufgerufen wird,<br />

entfernt sie ihren eigenen Ereignis-Listener mit der removeEventListener()-Funktion:<br />

Letzte Aktualisierung 27.6.2012<br />

1091

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!