Requisitos e vantagens da API externaFlash Player 9 e posterior, Adobe AIR 1.0 e posterior A API externa é a parte do ActionScript que fornece um mecanismo para comunicação entre o ActionScript e o código em execução em um “aplicativo externo” que está agindo como contêiner para o Flash Player (normalmente um navegador da Web ou aplicativo de projetor dedicado). No ActionScript 3.0, a funcionalidade da API externa é fornecida pela classe ExternalInterface. Nas versões do Flash Player anteriores ao Flash Player 8, a ação fscommand() era usada para estabelecer a comunicação com o aplicativo de contêiner. A classe ExternalInterface é a substituição para fscommand(). Nota: Se precisar usar a função fscommand() antiga (por exemplo, para manter a compatibilidade com aplicativos mais antigos ou para interagir com um aplicativo de contêiner SWF de terceiros ou o Flash Player), ela ainda está disponível como uma função no pacote flash.system.
A classe ExternalInterface é um subsistema que permite a comunicação fácil entre ActionScript e Flash Player com JavaScript em uma página HTML ou com qualquer aplicativo de área de trabalho que inclui uma ocorrência do Flash Player. A classe ExternalInterface só está disponível nas seguintes condições:
Em todas as outras situações (como a execução em um player dedicado), a propriedade ExternalInterface.available retorna false. No ActionScript, é possível chamar uma função JavaScript na página HTML. A API externa tem uma funcionalidade aprimorada em comparação com fscommand():
Importante: Se o nome dado à ocorrência do Flash Player em uma página HTML (atributo id da tag object) incluir um hífen (-) ou outros caracteres que são definidos como operadores no JavaScript (como +, *, /, \, ., e assim por diante), as chamadas ExternalInterface do ActionScript não vão funcionar quando a página da Web do contêiner é visualizada no Internet Explorer. Além disso, se as tags HTML que definem a ocorrência do Flash Player (as tags object e embed) estiverem em uma tag HTML form, as chamadas ExternalInterface do ActionScript não vão funcionar.
|
![]() |