Para acessar objetos em uma página HTML do ActionScript em um arquivo SWF importado na página usando a tag
<script>
, passe uma referência para um objeto JavaScript, como
window
ou
document
, em uma função definida no código do ActionScript. Use a referência na função para acessar o objeto JavaScript (ou outros objetos acessíveis por meio da referência passada).
Por exemplo, considere a seguinte 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>
Essa página HTML simples tem uma variável JavaScript chamada
num
e uma função JavaScript chamada
getStatus()
. As duas propriedades são propriedades do objeto
window
da página. Além disso, o objeto
window.document
inclui um elemento chamado P (com a ID
p1
).
A página carrega o arquivo ActionScript, "ASLibrary.swf," que contém a classe ASClass. A ASClass define a função chamada
accessDOM()
que simplesmente rastreia os valores desses objetos JavaScript. O método
accessDOM()
considera o objeto de janela JavaScript como um argumento. Ao usar essa referência de janela, ele pode acessar outros objetos na página, incluindo variáveis, funções e elementos DOM, conforme ilustrado na definição a seguir:
public class ASClass{
public function accessDOM(window:*):void {
trace(window.num); // 254
trace(window.document.getElementById("p1").innerHTML); // Body text..
trace(window.getStatus()); // OK.
}
}
Você pode obter e definir propriedades da página HTML de uma classe ActionScript importada. Por exemplo, a seguinte função define o conteúdo do elemento
p1
na página e define o valor da variável de JavaScript
foo
na página:
public function modifyDOM(window:*):void {
window.document.getElementById("p1").innerHTML = "Bye";
window.foo = 66;