Om du vill få tillgång till objekt på en HTML-sida från ActionScript i en SWF-fil som är importerad till sidan med hjälp av
<script>
-taggen, skickar du en referens till ett JavaScript-objekt, t.ex.
window
eller
document
, till en funktion som definieras i ActionScript-koden. Använd referensen i funktionen för att få åtkomst till JavaScript-objektet (eller andra objekt som är tillgängliga via den skickade referensen).
Ta till exempel följande HTML-sida:
<html>
<script src="ASLibrary.swf" type="application/x-shockwave-flash"></script>
<script>
num = 254;
function getStatus() {
return "OK.";
}
function runASFunction(window){
var obj = new runtime.ASClass();
obj.accessDOM(window);
}
</script>
<body onload="runASFunction">
<p id="p1">Body text.</p>
</body>
</html>
På den här enkla HTML-sidan finns en JavaScript-variabel som heter
num
och en JavaScript-funktion som heter
getStatus()
. De här båda är egenskaper för sidans
window
-objekt.
window.document
-objektet innehåller också ett namngivet P-element (med ID
p1
).
Sidan läser in en ActionScript-fil, ”ASLibrary.swf”, som innehåller en klass (ASClass). ASClass definierar en funktion med namnet
accessDOM()
som spårar värdena för dessa JavaScript-objekt. Metoden
accessDOM()
använder JavaScript Window-objektet som ett argument. Med hjälp av den här Window-referensen kan den få åtkomst till andra objekt på sidan, inklusive variabler, funktioner och DOM-element. Se följande definition:
public class ASClass{
public function accessDOM(window:*):void {
trace(window.num); // 254
trace(window.document.getElementById("p1").innerHTML); // Body text..
trace(window.getStatus()); // OK.
}
}
Du kan både hämta och ange egenskaper för HTML-sidan från en importerad ActionScript-klass. Följande funktion anger till exempel innehållet för
p1
-elementet på sidan och den anger värdet för JavaScript-variabeln
foo
som finns på sidan:
public function modifyDOM(window:*):void {
window.document.getElementById("p1").innerHTML = "Bye";
window.foo = 66;