Po wywołaniu zdarzenia
complete
przez obiekt HTMLLoader programista ma dostęp do wszystkich obiektów modelu DOM (obiektowy model dokumentu) HTML strony. Obiekty, do których można uzyskać dostęp, zawierają elementy wyświetlane (np. obiekty
div
i
p
na stronie), a także zmienne i funkcje JavaScript. Zdarzenie
complete
odpowiada zdarzeniu
load
strony JavaScript. Nie należy przekształcać ani tworzyć elementów, zmiennych i funkcji modelu DOM, zanim nie zostanie wywołane zdarzenie
complete
. Jeśli jest to możliwe, należy poczekać na zdarzenie
complete
przed dostępem do modelu DOM HTML.
Na przykład: rozważmy następującą stronę HTML:
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>
Prosta strona HTML definiuje zmienną JavaScript o nazwie
foo
oraz funkcję JavaScript o nazwie
test()
. Obie są właściwościami obiektu globalnego
window
strony. Obiekt
window.document
zawiera element o nazwie P (z ID
p1
), do którego dostęp można uzyskać za pomocą metody
getElementById()
. Po załadowaniu strony (gdy obiekt HTMLLoader wywoła zdarzenie
complete
) możliwy jest dostęp do każdego z tych obiektów za pomocą języka ActionScript, co ilustruje poniższy kod ActionScript:
var html:HTMLLoader = new HTMLLoader();
html.width = 300;
html.height = 300;
html.addEventListener(Event.COMPLETE, completeHandler);
var xhtml:XML =
<html>
<script>
foo = 333;
function test() {
return "OK.";
}
</script>
<body>
<p id="p1">Hi.</p>
</body>
</html>;
html.loadString(xhtml.toString());
function completeHandler(e:Event):void {
trace(html.window.foo); // 333
trace(html.window.document.getElementById("p1").innerHTML); // Hi.
trace(html.window.test()); // OK.
}
Aby uzyskać dostęp do treści elementu HTML, należy użyć właściwości
innerHTML
. Na przykład: poprzedni kod używa wywołania
html.window.document.getElementById("p1").innerHTML
w celu pobrania treści elementu HTML o nazwie
p1
.
Możliwe jest również ustawienie właściwości strony HTML z kodu ActionScript. Na przykład: poniższy przykład ustawia na stronie treść elementu
p1
oraz wartość zmiennej JavaScript
foo
za pomocą odwołania do zawierającego je obiektu HTMLLoader:
html.window.document.getElementById("p1").innerHTML = "Goodbye";
html.window.foo = 66;