Para acceder a objetos en una página HTML desde ActionScript en un archivo SWF importado en la página utilizando la etiqueta
<script>
, pase una referencia a un objeto JavaScript, como
window
o
document
, a una función definida en el código ActionScript. Utilice la referencia dentro de la función para acceder al objeto JavaScript (u otros objetos accesibles a través de la referencia pasada).
Por ejemplo, considere la siguiente página HTML:
<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>
Esta simple página HTML tiene una variable JavaScript denominada
num
y una función JavaScript denominada
getStatus()
. Ambas son propiedades del objeto
window
de la página. Asimismo, el objeto
window.document
incluye un elemento P (con el ID
p1
).
La página carga un archivo ActionScript, “ASLibrary.swf,” que contiene una clase, ASClass. ASClass define una función denominada
accessDOM()
que simplemente rastrea los valores de estos objetos JavaScript. El método
accessDOM()
toma al objeto Window de JavaScript como un argumento. Utilizando esta referencia Window, se puede acceder a otros objetos en la página incluyendo variables, funciones y elementos DOM como se muestra en la siguiente definición:
public class ASClass{
public function accessDOM(window:*):void {
trace(window.num); // 254
trace(window.document.getElementById("p1").innerHTML); // Body text..
trace(window.getStatus()); // OK.
}
}
Se pueden obtener y definir las propiedades de la página HTML de una clase ActionScript importada. Por ejemplo, la siguiente función define el contenido del elemento
p1
en la página y define el valor de la variable
foo
de JavaScript en la página:
public function modifyDOM(window:*):void {
window.document.getElementById("p1").innerHTML = "Bye";
window.foo = 66;