Como transmitir variáveis para arquivos SWF para o Flash Professional

Introdução

O parâmetro FlashVars da marca HTML <OBJECT> envia variáveis para o nível superior de um arquivo SWF quando é carregado em um navegador da Web. A marca <OBJECT> é usada para adicionar arquivos SWF a páginas HTML. A marca <EMBED> também pode ser usada, mas é antiga e hoje está obsoleta.

Para obter informações sobre as noções básicas de uso da marca <OBJECT>, consulte Sintaxe da marca OBJECT.

Observação: o recurso FlashVars requer Flash Player 6 ou posterior.

Usar FlashVars para passar valores para um arquivo SWF

Você pode usar um parâmetro opcional chamado "FlashVars" para passar variáveis para o nível raiz do arquivo SWF. Coloque esse parâmetro dentro da marca <OBJECT> ou da marca antiga <EMBED>. Todas essas variáveis são em seguida passadas para o arquivo SWF antes do primeiro quadro do arquivo ser reproduzido.

Você pode passar quantas variáveis desejar com quaisquer nomes de variáveis que desejar. Todos os navegadores oferecem suporte a seqüências de FlashVars com um comprimento de até 64 KB (65535 bytes).

O formato da propriedade de FlashVars é uma seqüência que é um conjunto de pares de nome=valor separados pelo caractere "&".

Você pode incluir caracteres especiais ou não imprimíveis usando um caractere "%" seguido do valor hexadecimal de dois dígitos apropriado. Um único espaço em branco pode ser representado usando o sinal de "+". Para obter mais informações sobre caracteres especiais de codificação de URL, consulte Codificação de URL (Wikipedia).

O exemplo a seguir de código HTML passa duas variáveis. A primeira é chamada "myVariable", com um valor de "Hello World". A segunda é chamada "mySecondVariable", com um valor de "Goodbye."

Exemplo de marca Object

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">
    <param name="movie" value="myFlashMovie.swf" />
    <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="myFlashMovie.swf" width="550" height="400">
        <param name="movie" value="myFlashMovie.swf" />
        <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--<![endif]-->
        <a href="http://www.adobe.com/go/getflash">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
        </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

 

Exemplo de marca Embed

A marca <EMBED> também pode ser usada para adicionar um arquivo SWF a uma página da Web, mas é uma marca antiga e hoje está obsoleta.

<embed src="myFlashMovie.swf" 
    quality="high" 
    bgcolor="#ffffff" 
    width="550" 
    height="400" 
    name="myFlashMovie"     FlashVars="myVariable=Hello%20World&mySecondVariable=Goodbye"
    align="middle" 
    allowScriptAccess="sameDomain" 
    allowFullScreen="false" 
    type="application/x-shockwave-flash" 
    pluginspage="http://www.adobe.com/go/getflash" 
/>

O navegador codifica a seqüência de FlashVars da mesma forma que codifica o resto da página HTML. O Internet Explorer no Windows fornece codificação compatível com UTF-16. Outros navegadores oferecem codificação compatível com UTF-8.

Acessar as variáveis em código de ActionScript 3.0 em um arquivo SWF

Depois de as variáveis terem sido passadas de HTML para o arquivo SWF, este precisará usar essas variáveis.

Use o objeto LoaderInfo de ActionScript 3.0 para acessar as variáveis de FlashVars.

Exemplo simples

O exemplo de código a seguir consulta o objeto LoaderInfo para acessar a variável chamada myVariable que foi passada para o arquivo SWF no parâmetro de FlashVars. Em seguida define o texto de um campo de texto no estágio para o valor da seqüência da variável.

// by querying the LoaderInfo object, set the value of paramObj to the 
// to the value of the variable named myVariable passed from FlashVArs in the HTML
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;

// set the text of the text instance named text1. Use the toString() method
// to convert the value from an object to a string so it can be used in the text field
text1.text = paramObj.toString()

Você pode fazer o download de um arquivo FLA, SWF de amostra e de um arquivo HTML que mostra o código acima em uso.

Exemplo avançado

O exemplo de código abaixo faz o seguinte:

  • Cria uma instância de TextField no estágio (chamada tf).
  • Usa o objeto LoaderInfo para introduzir as variáveis do parâmetro de FlashVars.
  • Usa um loop for..in para iterar sobre cada uma das variáveis passadas.
  • Exibe os nomes e os valores das variáveis no campo de texto.
// AS3
var tf:TextField = new TextField();       // create a TextField names tf
tf.autoSize = TextFieldAutoSize.LEFT;
tf.border = true;
addChild(tf);                             // add the TextField to the DisplayList so that it appears on the Stage

tf.appendText("params:" + "\n");
try 
{
    var keyStr:String;
    var valueStr:String;
    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;   //set the paramObj variable to the parameters property of the LoaderInfo object
    for (keyStr in paramObj) 
    {
        valueStr = String(paramObj[keyStr]);
        tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n");  // add each variable name and value to the TextField named tf
    }
} 

catch (error:Error) 
{
    tf.appendText(error.toString());
}

Acessar as variáveis no código de ActionScript 2.0 em um arquivo SWF

Em ActionScript 2.0, você pode acessar diretamente as variáveis de FlashVars, como se tivessem sido declaradas no próprio arquivo SWF.

Este exemplo define a propriedade de texto de uma instância de texto dinâmico chamado text1 para o valor de uma variável chamada myVariable. myVariable é declarada no parâmetro de FlashVars.

// AS2
text1.text = myVariable;

Você pode fazer o download de um arquivo FLA, SWF de amostra e de um arquivo HTML mostrando o código AS2 acima em uso.

Técnicas adicionais

Variáveis também podem ser passadas para arquivos SWF acrescentando-as ao URL de arquivos SWF especificados nas marcas OBJECT e EMBED. Nesta técnica, as informações adicionais acrescentadas ao URL são chamadas de seqüência de caracteres de consulta. Este método tem limitações, caso você precise das variáveis imediatamente quando o arquivo SWF é carregado. Ao usar este método, é necessário baixar e reproduzir o arquivo SWF antes que grandes quantidades de dados possam ser solicitadas do servidor.

Palavras-chave: passar; parâmetros; sequência de caracteres de consulta; objeto; incorporado; tn_16417

 Adobe

Receba ajuda com mais rapidez e facilidade

Novo usuário?