Você está na página 1de 17

CARREGAR VARIÁVEIS EXTERNAS PARA O FLASH

Introdução

O Flash permite que envies variáveis externas para dentro do .swf usando vários métodos:

· A partir do HTML que chama o ficheiro .swf


· A partir de um ficheiro de texto
· A partir de um script Server Side
· A partir de outro .swf
· A partir de uma livraria de ficheiros
· A partir de um documento XML
· A partir do FS Commands

Vamos neste tutorial abordar os três primeiros métodos.

A primeira parte deste tutorial mostra o que estes três métodos são. A segunda mostra como
determinar quando o Movie recebeu os dados. A terceira demostra como o Flash consegue
enviar dados para um script server-side com uma simples alteração do comando loadVariables.
Finalmente, a quarta aborda as características do Flash 5 que permitem manipular melhor os
processos de envio e carregamento.

Em baixo um exemplo de uma variável enviada e recebida através de um script php.

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Parte I

Este método passa as variáveis para dentro de um .swf via declaração da tag "OBJECT"
no documento HTML:

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,30,0"
ID=mymovie WIDTH=550 HEIGHT=400>
<PARAM NAME=movie
VALUE="meumovie.swf?email=nome@truquesedicas.com&user=nome">
<PARAM NAME=loop VALUE=false>
<PARAM NAME=menu VALUE=false>
<PARAM NAME=quality VALUE=best>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="mymovie.swf?email=nome@truquesedicas.com&user=nome "
name="mymovie"
loop=false menu=false quality=best
bgcolor=#FFFFFF
width=550 height=400
swLiveConnect=true type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash">
</EMBED>
</OBJECT>

A partir de um ficheiro de texto

Este método é muito parecido com o método anterior. Neste caso as variáveis estão
colocadas num ficheiro de texto em vez de estar na declaração da tag "OBJECT".

Aqui está o conteúdo de um ficheiro de texto que por exemplo se chama


"minhas_variaveis.txt":

&email=nome@truquesedicas.com&user=nome&done=y&eol=y

done=y&eol=y & - este código é usado para marcar o fim da string

Aqui o código no Flash que carrega os dados:

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
LoadVariables("minhas_variaveis.txt","");

Quando o .swf evoca o comando "loadVariables", este pede ao ficheiro de texto (neste
caso minhas_variaveis.txt) que está no servidor. O pedido do ficheiro de texto devolve a
linha das variáveis para o .swf.

A partir de um script server-side

Mais uma vez este método é muito similar aos métodos anteriores de carregamento. O
script é usado para enviar a linha de variáveis no mesmo formato que enviado no ficheiro
de texto.

php - num ficheiro com o nome minhas_variaveis.php

<?
$returnurlstring = "&email=nome@truquesedicas.com&user=nome&done=y&eol=y";
echo $returnurlstring;
?>

código associado no Flash:

loadVariables("minhas_variaveis.php","");

cgi - num ficheiro com o nome minhas_variaveis.cgi

#!/usr/bin/perl

$returnurlstring = "&email=nome@truquesedicas.com&user=nome&done=y&eol=y";
print $returnurlstring;

código associado no Flash:

loadVariables("minhas_variaveis.cgi","");

asp - num ficheiro com o nome minhas_variaveis.asp

<%
$returnurlstring ="&email=nome@truquesedicas.com&user=nome&done=y&eol=y";
response.write(returnurlstring)
%>

código associado no Flash:

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
loadVariables("myvariables.asp","");

cfm - num ficheiro com o nome minhas_variaveis.cfm

<cfset returnurlstring = "&email=woof@cruddog.com&user=tim&done=y&eol=y">


<cfoutput>#returnurlstring#</cfoutput>

código associado no Flash:

loadVariables("myvariables.cfm","");

Quando o comando loadVariables é evocado no .swf, este inicia a execução do script que
está no servidor. O script gera a linha das variáveis e envia-a para o .swf. Isto é válido
para os quatro scripts anteriores

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
PARTE II

Marca de dados carregados

Adicionamos o código &done=y&eol=y no fim da string das variáveis porque precisamos


de ter uma maneira do Flash conseguir detectar quando é que os dados acabaram de ser
carregados. O Flash carrega os dados assincronamente, quer isto dizer que quando o
comando loadVariables é evocado, começa a receber os dados, enquanto ao mesmo
tempo o Movie continua a correr.

O esquema para detecção de dados carregados no Flash é usar uma variável para
identificar que os dados foram completamente carregados. No nosso caso usamos a
variável "done".

Detecção de variáveis carregadas

O carregamento das variáveis e a sua detecção é feito ao longo de cinco frames, analisa
os screenshots das actions das cinco frames.

Frame #1

Frame #2

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Frame #3

Frame #4

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Frame #5

Isto demonstra o loop feito enquanto espera que a variável "done" seja carregada do
ficheiro minhas_variaveis.txt. Portanto, isto acontece até que o código &done=y&eol=y
seja carregado. A variavel eol=y não tem importância, é só com o propósito de prevenir
qualquer retorno da variável done.

Tenta tu próprio fazer isto

Aqui tens um exemplo a funcionar.

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
No zip dos ficheiros do tutorial (carregar_var.zip) tens o ficheiro carregar_variaveis01.fla,
abre-o, analisa o código e tenta fazer o mesmo por ti.

Deverás ter em atenção alguns pontos quando trabalhas com a action loadVariables:

Todas as variáveis devolvidas são strings

Utiliza a action getTimer() para criar timeouts ao carregar os dados, no caso


de interrupção de uma ligação ou do processo de carregamento

Coloca as frames do carregamento (load) num symbol Movie Clip para que
te seja permitido evocar este processo em qualquer altura

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
PARTE III

Enviar variáveis a partir do Flash

Nesta secção vamos modificar a action loadVariables de forma a que envie dados para um
script alojado no servidor. Enviar dados usando o Flash é muito similar ao envio de dados
a partir de forms HTML, utilizando os métodos GET ou POST:

Aqui uma form HTML:

Método GET

<HTML>
<HEAD><TITLE>Teste de Form</TITLE></HEAD>
<BODY>
<FORM ACTION="processform.php" METHOD="GET">
email address:
<INPUT TYPE="TEXT" NAME="email" VALUE="nome@truquesedicas.com">
<INPUT TYPE="SUBMIT" VALUE="ENTER">
</FORM>
</BODY>
</HTML>

Método POST

<HTML>
<HEAD><TITLE>Teste Form</TITLE></HEAD>
<BODY>
<FORM ACTION="processform.php" METHOD="POST">
email address:
<INPUT TYPE="TEXT" NAME="email" VALUE="nome@truquesedicas.com">
<INPUT TYPE="SUBMIT" VALUE="ENTER">
</FORM>
</BODY>
</HTML>

Código equivalente em Flash

email="nome@truquesedicas.com";
loadVariables("processform.php","","post");

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
O que o Get envia

O Flash usa a timeline onde a action loadVariables está localizada para definir que
váriaveis manda para o script. Quer isto dizer o quê? Por exemplo, se a action
loadVariables estiver na timeline principal do movie, então todas as variáveis definidas na
timeline principal são enviadas pela action loadVariables para o script.

A seguir as várias frames do processo de envio de dados para um script:

Frame #1

Frame #2

Frame #3

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Frame #4

Frame #5

Para ser selectivo nas variáveis a enviar para o script, este processo deve ser movido para
dentro de um Movie Clip. Isto porque o Movie Clip tem a sua própria timeline, e por isso
só as variáveis definidas no Movie Clip serão enviadas pela action loadvariables quando
esta é chamada.

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Envio selectivo com Movie Clips

Supõe que a seguinte variável existe na timeline principal:

nome="fagundes"; animal="cão"; cp="4150":

Supõe também que queremos enviar só a variável nome e a cp através do método post
para o script "processform.php". A timeline do Movie Clip terá este aspecto:

Frame #1

Frame #2

Frame #3

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Frame #4

Frame #5

Nota que isto é importante para determinar em antemão qual o método, GET ou POST, a
ser usado pelo script. Pensa nisto como duas linguagens diferentes onde o sender (nós) e
o script (eles) têm que concordar para que se entendam um ao outro.

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
Tenta tu próprio

Abre a pasta "carregar_variaveis" que está no zip do turorial (carregar_var.zip). Dentro


dela tens exemplos em quatro linguagens: ASP, PHP, Perl e Coldfusion. Para correres os
exemplos precisas de ter disponível um servidor que corra scripts server-side de uma
destas linguagens. No servidor os três ficheiros de cada linguagem precisam de estar na
mesma pasta. Os ficheiros .fla de cada linguagem estão na pasta source, analisa-os e
tenta fazer por ti.

Algumas questões que te vão aparecer durante os testes:

Alguns servidores exigem que os scripts estejam numa pasta especifica


para correrem

As permissões talvez tenham que ser ajustadas para permitir que os scripts
corram - normalmente isto acontece com os scripts Perl e PHP.

Contacta o teu fornecedor de servidor se encontrares alguns problemas ao


correr os scripts no servidor

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
PARTE IV

Auto detecção

Até agora usámos a variável done=y para detectar se o ficheiro tinha sido completamente
carregado, e este método resulta tanto no Flash 4 como no Flash 5. Especifico para o
Flash 5 é o método que permite a detecção aconteça automaticamente. Quer isto dizer
eliminar a variável done completamente do processo, e substituir isto com algo chamado
onClipEvent(data). Vê como fica agora o processo:

Frame #1

Frame #2

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.
O Painel das actions do Movie Clip deverá ter o seguinte código:

Tenta tu próprio

Abre a pasta "carregar_variaveis_Flash5" que está no zip do tutorial


(carregar_variaveis.zip). Dentro dela tens exemplos em quatro linguagens: ASP, PHP, Perl
e Coldfusion. Para correres os exemplos precisas de ter disponível um servidor que corra
scripts server-side de uma destas linguagens. No servidor os três ficheiros de cada
linguagem precisam de estar na mesma pasta. Os ficheiros .fla de cada linguagem estão
na pasta source, analisa-os e tenta fazer por ti.

Algumas questões que te vão aparecer durante os testes:

Alguns servidores exigem que os scripts estejam numa pasta especifica


para correrem

As permissões talvez tenham que ser ajustadas para permitir que os scripts
corram - normalmente isto acontece com os scripts Perl e PHP.

Contacta o teu fornecedor de servidor se encontrares alguns problemas ao


correr os scripts no servidor

E é tudo!!

© 2002 VISUALWORK Produções Multimedia, Lda. Todos os direitos reservados. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa da VISUALWORK.
FLASHWEBTRAINING.com, truquesedicas.com e respectivos logos são marcas registadas da VISUALWORK Produções Multimedia, Lda.

Você também pode gostar