Das folgende Beispiel veranschaulicht, wie Eigenschaften, die auf ActionScript-Objekte verweisen, dem globalen Fensterobjekt einer HTML-Seite hinzugefügt werden:
var html:HTMLLoader = new HTMLLoader();
var foo:String = "Hello from container SWF."
function helloFromJS(message:String):void {
trace("JavaScript says:", message);
}
var urlReq:URLRequest = new URLRequest("test.html");
html.addEventListener(Event.COMPLETE, loaded);
html.load(urlReq);
function loaded(e:Event):void{
html.window.foo = foo;
html.window.helloFromJS = helloFromJS;
}
Der im vorhergehenden Beispiel in das HTMLLoader-Objekt geladene HTML-Inhalt (in der Datei „test.html“) kann auf die in der übergeordneten SWF-Datei definierte
foo
-Eigenschaft und
helloFromJS()
-Methode zugreifen:
<html>
<script>
function alertFoo() {
alert(foo);
}
</script>
<body>
<button onClick="alertFoo()">
What is foo?
</button>
<p><button onClick="helloFromJS('Hi.')">
Call helloFromJS() function.
</button></p>
</body>
</html>
Beim Zugreifen auf den JavaScript-Kontext eines ladenden Dokuments können Sie mithilfe des
htmlDOMInitialize
-Ereignisses Objekte so früh in der Seitenerstellungsfolge erstellen, dass in der Seite definierte Skripts auf sie zugreifen können. Wenn Sie das
complete
-Ereignis abwarten, können nur Skripts in der Seite, die nach dem
load
-Ereignis der Seite ausgeführt werden, auf die hinzugefügten Objekte zugreifen.