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;