15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Programmieren mit HTML und JavaScript in AIR<br />

Bereitstellen von Klassendefinitionen für JavaScript<br />

Adobe AIR 1.0 und höher<br />

Um die ActionScript-Klassen der Anwendung in JavaScript bereitzustellen, können Sie den geladenen HTML-Inhalt<br />

der Anwendungsdomäne zuweisen, die die Klassendefinitionen enthält. Die Anwendungsdomäne des JavaScript-<br />

Ausführungskontexts kann mit der runtimeApplicationDomain-Eigenschaft des HTMLLoader-Objekts festgelegt<br />

werden. Um die primäre Anwendungsdomäne als Anwendungsdomäne festzulegen, legen Sie für<br />

runtimeApplicationDomainApplicationDomain.currentDomain fest, wie im folgenden Code veranschaulicht:<br />

html.runtimeApplicationDomain = ApplicationDomain.currentDomain;<br />

Wenn die runtimeApplicationDomain-Eigenschaft festgelegt wurde, verwendet der JavaScript-Kontext die gleichen<br />

Klassendefinitionen wie die zugewiesene Domäne. Um eine Instanz einer benutzerdefinierten Klasse in JavaScript zu<br />

erstellen, verweisen Sie über die window.runtime-Eigenschaft auf die Klassendefinition und verwenden Sie den new-<br />

Operator:<br />

var customClassObject = new window.runtime.CustomClass();<br />

Der HTML-Inhalt muss aus einer kompatiblen Sicherheitsdomäne stammen. Stammt der HTML-Inhalt aus einer<br />

anderen Sicherheitsdomäne als der zugewiesenen Anwendungsdomäne, verwendet die Seite stattdessen die<br />

Standardanwendungsdomäne. Wenn Sie zum Beispiel eine Remoteseite aus dem Internet laden, könnten Sie<br />

ApplicationDomain.currentDomain nicht als Anwendungsdomäne der Seite zuweisen.<br />

Entfernen von Ereignisprozeduren<br />

Adobe AIR 1.0 und höher<br />

Wenn Sie Objekten außerhalb der aktuellen Seite, einschließlich Laufzeitobjekte in geladenem SWF-Inhalt und sogar<br />

auf anderen Seiten ausgeführte JavaScript-Objekte, JavaScript-Ereignisprozeduren hinzufügen, sollten Sie diese<br />

Ereignis-Listener beim Entladen der Datei immer entfernen. Andernfalls sendet der Ereignis-Listener das Ereignis an<br />

eine nicht mehr vorhandene Prozedurfunktion. In diesem Fall wird die folgende Fehlermeldung angezeigt: „The<br />

application attempted to reference a JavaScript object in an HTML page that is no longer loaded.“ (Die Anwendung<br />

hat versucht, auf ein JavaScript-Objekt in einer HTML-Seite zu verweisen, die nicht mehr geladen ist.) Durch<br />

Entfernen nicht benötigter Ereignisprozeduren kann AIR den zugehörigen Speicher freigeben. Weitere Informationen<br />

finden Sie unter „Entfernen von Ereignis-Listenern auf navigierenden HTML-Seiten“ auf Seite 1091.<br />

Zugreifen auf HTML-DOM- und JavaScript-Objekte mit<br />

ActionScript<br />

Adobe AIR 1.0 und höher<br />

Wenn das HTMLLoader-Objekt das complete-Ereignis auslöst, können Sie auf alle Objekte im HTML-DOM<br />

(Dokumentobjektmodell) der Seite zugreifen. Zu den zugreifbaren Objekten gehören Anzeigeelemente (z. B. das div-<br />

und p-Objekt in der Seite) sowie JavaScript-Variablen und -Funktionen. Das complete-Ereignis entspricht dem load-<br />

Ereignis der JavaScript-Seite. Vor dem Auslösen des complete-Ereignisses wurden DOM-Elemente, Variablen und<br />

Funktionen möglicherweise nicht analysiert oder erstellt. Warten Sie nach Möglichkeit das complete-Ereignis ab,<br />

bevor Sie auf das HTML-DOM zugreifen.<br />

Sehen Sie sich beispielsweise folgende HTML-Seite an:<br />

Letzte Aktualisierung 27.6.2012<br />

1053

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

Saved successfully!

Ooh no, something went wrong!