Uso de bibliotecas do ActionScript em uma página HTML
Adobe AIR 1.0 e posterior
O AIR estende o elemento de script HTML para que a página possa importar classes ActionScript em um arquivo SWF compilado. Por exemplo, para importar uma biblioteca chamada myClasses.swf, localizada no subdiretório lib da pasta raiz do aplicativo, inclua a seguinte tag de script no arquivo HTML:
<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
Importante: O atributo de tipo deve ser type="application/x-shockwave-flash" para que a biblioteca seja carregada corretamente.
Se o conteúdo SWF for compilado como Flash Player 10 ou AIR 1.5 SWF, você deverá definir o namespace do descritor do aplicativo como namespace do AIR 1.5.
O diretório lib e o arquivo myClasses.swf também deve ser incluído quando o arquivo AIR for empacotado.
Acesse as classes importadas por meio da propriedade runtime do objeto da janela JavaScript:
var libraryObject = new window.runtime.LibraryClass();
Se as classes no arquivo SWF estiverem organizadas em pacotes, você também deverá incluir o nome do pacote. Por exemplo, se a definição LibraryClass estivesse em um pacote chamado utilities, você deveria criar uma ocorrência da classe com a seguinte instrução:
var libraryObject = new window.runtime.utilities.LibraryClass();
Nota: Para compilar uma biblioteca SWF do ActionScript para usar como parte da página HTML no AIR, use o compilador acompc. O utilitário acompc é parte do SDK do Flex e está descrito na _brDocumentação do SDK Flex.
Acesso aos objetos HTML DOM e JavaScript de um arquivo ActionScript importado
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;