Eu tava montando aqui um site e tive uma idéia excelente: fazer uma animação em Flash que puxasse o endereço da imagem e um texto do html, pra mais tarde eu colocar uma programaçaozinha em PHP e puxar os dados de um banco SQL. Crazy Man! Procurei essa parada em tudo quanto é site, e nenhum me deu a resposta certa. Isso porque eu já estou usando o Actionscript 3, que só o Flash CS3 em diante tem suporte. Então resolvi misturar um post com outros três e consegui a resposta final. YATAAAA!
O problema é o seguinte: o Actionscript 3 é muito mais simples que as outras versões, mas ele não puxa o parâmetro Flashvars, somente se vc usar Query String. Não entendeu? Deixa eu explicar:
Essa é uma requisição comum, em html, de um flash, para o Internet Explorer (IE):
<param name=”movie” value=”exemplo.swf” />
<param name=”quality” value=”high” />
<param name=”FlashVars” value=”teste=Mensagem de teste FlashVars” />
</object>
Nesta aqui, o nome do arquivo SWF é “exemplo.swf”, com largura (width) 500 e altura (height) 400. Temos o Flashvars, que leva para dentro do filme SWF variáveis, que vc escolhe, para executarem alguma função dentro do SWF (no caso, temos a variável “teste”, com o valor “Mensagem de teste FlashVars”).
Vamos começar por aqui. Para levar essa variável para dentro do flash, vamos reescrever esse código e colocá-lo aceitável com qualquer navegador. NUNCA use a importação flash que o Dreamweaver coloca, isso só atrapalha.
<param name=”movie” value=”exemplo.swf?teste=Mensagem de teste” />
<param name=”quality” value=”high” />
<param name=”bgcolor” value=”#FFFFFF” />
<!–[if !IE]> <–> /*Comentário condicional*/
<object data=”exemplo.swf?teste=Mensagem de teste” width=”550″ height=”400″ type=”application/x-shockwave-flash”>
<param name=”quality” value=”high” />
<param name=”bgcolor” value=”#FFFFFF” />
<param name=”pluginurl” value=”http://www.adobe.com/go/getflashplayer” />
</object>
<!–> <![endif]–> /*fim do Comentário condicional*/
</object> /*É necessário repetir o fechamento do Object*/
Repare duas coisas:
1- A variável “teste” é adicionada logo após o nome do filme, separada do nome por “?”. Isso é o que chamamos “Query String”;
2- A requisição foi feita 2 vezes. O comentário condicional, detecta se o navegador não é IE. Caso não seja mesmo, ele vai rodar o segundo trecho do código, ao invés do primeiro.
Agora vamos ao Flash. No caso, vamos dar um exemplo de uma animação que vai puxar a variável “teste” do HTML e escrevê-la no palco, dentro de um MovieClip:
1- Crie uma animação com width=500 e height=400;
2- Faça um retângulo, widht=500 e height=50;
3- Coloque-o na posição x=0, y=175;
4- Transforme o retângulo em MovieCLip, dê o nome de caixa;
5- Entre no MovieClip, crie mais uma layer e adicione um campo de texto, mude para texto dinâmico (dinamic text) e dê um nome de instância. Pode ser “texto”;
6- Clique no 1º frame da 1ª layer e aperte F9 (ou vá em Window -> Actions);
7- Escreva o código:
import flash.net.URLRequest; //requisicao para puxar uma URL, semelhante a getURL();
var vars:Object = LoaderInfo(this.root.loaderInfo).parameters; //puxa todos os parametros externos colocados no HTML para dentro do Objeto “vars”
var frase:String = vars.teste; //Cria a variável String “frase” e joga o valor de “teste”, que foi puxado do HTML
if (frase==null) {frase=”Nada a mostrar…”;} //Correção para permitir a compilação do código
//escreve o texto no campo “texto”
texto.text = texto;
Coloquei uma correção, porque, dependendo de como for desenvolvido o código, o Flash não vai complilar, pois o SWF detecta que “frase” está sem valor algum (null). Para testar seu SWF, aperte CTRL+enter. Ele deve exibir a frase “Nada a mostrar…”, porque não está linkado ao HTML. Coloque-o na mesma pasta que o HTML e abra o arquivo.html que vc criou. Vai aparecer uma faixa cinza e a frase “Mensagem de teste”.
Pronto! Você não precisa mais passar pela dificuldade que eu passei! UFA!
No meu próximo POST sobre Flash, vou ensinar como chamar uma imagem externa ao SWF. Se eu te ajudei, ore por mim, é só o que peço, rsrs. Estarei orando por vocês também.
Seu brother, G@besan.
Let Jesus do an Upgrade in your Life!


#1 by gabesan on 19/08/2009 - 10:15
Agradeço ao meu amigo Rafael Bernard por colocar um link para o meu post no seu blog! Valeeeeeeeeeeeeeu!!!
#2 by Rodrigo Normandia on 25/09/2009 - 15:17
Muito boa esta dica valeu, me ajudou bastante.
#3 by ze on 17/02/2011 - 10:05
matasse a pau juvenal!!
#4 by Rodrigo Sieben on 26/08/2011 - 21:09
MIIIITTTTIIIICCCOOOOO!!!