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.
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."
<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>
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.
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.
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.
O exemplo de código abaixo faz o seguinte:
// 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()); }
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.
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
Fazer logon em sua conta