Noções básicas de uso da API externa

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

Embora em alguns casos um arquivo SWF possa funcionar sozinho (por exemplo, se você usar o Adobe® Flash® Professional para criar um projetor SWF), na maioria dos casos, o aplicativo SWF funciona como elemento dentro de outro aplicativo. Normalmente, o contêiner que inclui o SWF é um arquivo HTML; um arquivo SWF é usado, com menos frequência, em toda ou parte da interface de usuário de um aplicativo de área de trabalho.

À medida que você trabalha em aplicativos mais avançados, talvez precise configurar a comunicação entre o arquivo SWF e o aplicativo de contêiner. Por exemplo, uma página da Web normalmente exibe texto ou outras informações em HTML e inclui um arquivo SWF para exibir conteúdo visual dinâmico, como um gráfico ou vídeo. Nesse caso, talvez seja útil especificar que, quando os usuários clicam em um botão na página da Web, alguma coisa deve mudar no arquivo SWF. O ActionScript contém um mecanismo, conhecido como API externa, que facilita esse tipo de comunicação entre o ActionScript em um arquivo SWF e outro código no aplicativo de contêiner.

Conceitos e termos importantes

A lista de referência a seguir contém termos importantes relevantes a este recurso:

Aplicativo de contêiner
O aplicativo no qual o Flash Player está executando o arquivo SWF, como um navegador da Web e a página HTML que inclui o conteúdo do Flash Player ou um aplicativo do AIR que carregue o SWF em uma página da Web.

Projetor
Um arquivo executável que inclui conteúdo SWF e uma versão incorporada do Flash Player. Você pode criar um arquivo de projetor usando o Flash Professional ou o Flash Player independente. Os projetores normalmente são usados para distribuir arquivos SWF por CD-ROM ou em situações similares onde o tamanho do download não é um problema e o autor do SWF quer garantir que o usuário possa executar o arquivo SWF, independentemente da instalação do Flash Player no computador do usuário.

Proxy
Um aplicativo ou código mediador que chama o código de um aplicativo (o “aplicativo externo”) em nome de outro aplicativo (o “aplicativo de chamada”) e retorna valores para o aplicativo de chamada. Um proxy pode ser usado por vários motivos, como:
  • Para simplificar o processo de chamada de funções externas, convertendo as chamadas de funções nativas do aplicativo de chamada no formato reconhecido pelo aplicativo externo.

  • Para obter uma solução alternativa para segurança ou outras restrições que impedem a comunicação direta do chamador com o aplicativo externo.

Serializar
Converter valores de objetos ou dados em um formato que pode ser usado para transmitir os valores em mensagens entre dois sistemas de programação, como via Internet ou entre dois aplicativos diferentes em execução em um único computador.

Trabalho por meio de exemplos

Muitos exemplos de código fornecidos são pequenas listagens apenas para demonstração, não exemplos de trabalho completos ou código que verifica valores. Como o uso da API externa requer (por definição) a gravação do código do ActionScript, bem como do código de um aplicativo de contêiner, o teste dos exemplos envolve a criação de um contêiner (por exemplo, uma página da Web que contém o arquivo SWF) e o uso das listagens de código para interagir com o contêiner.

Para testar um exemplo de comunicação entre ActionScript e JavaScript:

  1. Crie um novo documento usando o Flash Professional e salve-o em seu computador.

  2. No menu principal, escolha Arquivo > Configurações de publicação.

  3. Na caixa de diálogo Configurações de publicação, na aba Formatos, verifique se as caixas de seleção Flash e HTML estão marcadas.

  4. Clique no botão Publicar. Isso gera um arquivo SWF e um arquivo HTML na mesma pasta, com o mesmo nome usado para salvar o documento. Clique em OK para fechar a caixa de diálogo Configurações de publicação.

  5. Desmarque a caixa de seleção HTML. Agora que a página HTML foi gerada, você irá modificá-la para adicionar o código do JavaScript apropriado. Desmarcar a caixa de seleção HTML garante que, após a modificação da página HTML, o Flash não substituirá as alterações por uma nova página HTML ao publicar o arquivo SWF.

  6. Clique em OK para fechar a caixa de diálogo Configurações de publicação.

  7. Com um aplicativo de editor de texto ou HTML, abra o arquivo HTML criado pelo Flash ao publicar o arquivo SWF. No código-fonte HTML, adicione as tags script de abertura e fechamento e copie-as no código do JavaScript na listagem de código de exemplo:

    <script> 
    // add the sample JavaScript code here 
    </script>
  8. Salve o arquivo HTML e volte ao Flash.

  9. Selecione o quadro-chave no Quadro 1 da Linha de tempo e abra o painel Ações.

  10. Copie a listagem de código do ActionScript no painel Script.

  11. No menu principal, escolha Arquivo > Publicar para atualizar o arquivo SWF com as alterações feitas.

  12. Usando um navegador da Web, abra a página HTML editada para visualizá-la e testar a comunicação entre o ActionScript e a página HTML.

Para testar um exemplo de comunicação de contêiner entre ActionScript e ActiveX:

  1. Crie um novo documento usando o Flash Professional e salve-o em seu computador. Salve-o na pasta onde o aplicativo de contêiner deverá localizar o arquivo SWF.

  2. No menu principal, escolha Arquivo > Configurações de publicação.

  3. Na caixa de diálogo Configurações de publicação, na aba Formatos, verifique se apenas a caixa de seleção Flash está marcada.

  4. No campo Arquivo próximo à caixa de seleção Flash, clique no ícone de pasta para selecionar a pasta na qual o arquivo SWF será publicado. Uma vez definido o local do arquivo SWF, você pode, por exemplo, manter o documento em uma determinada pasta e colocar o arquivo SWF publicado em outra pasta, como a que contém o código-fonte do aplicativo de contêiner.

  5. Selecione o quadro-chave no Quadro 1 da Linha de tempo e abra o painel Ações.

  6. Copie o código do ActionScript do exemplo no painel Script.

  7. No menu principal, escolha Arquivo > Publicar para republicar o arquivo SWF.

  8. Crie e execute o aplicativo de contêiner para testar a comunicação entre o ActionScript e o aplicativo de contêiner.

Para ver exemplos completos da utilização da API externa para se comunicar com uma página HTML, consulte o seguinte tópico: Estes exemplos incluem o código completo, inclusive o código de verificação de erro do ActionScript e do contêiner, que deve ser usado ao programar o código com a API externa. Para obter outro exemplo completo de uso da API externa, consulte o exemplo da classe ExternalInterface na Referência do ActionScript 3.0.