Na Versão Flash5 a integração era bem escassa existindo somente 2 comandos "loadVariables e loadVariableNum", apartir do FlashMX criaram a Classe "LoadVars()" que dá maior suporte, lembrando que os filmes Flash's podem se integrar com "qualquer linguagem", veja abaixo a descrição dos métodos, propriedades e eventos da Classe LoadVars.
Para instanciar a Classe.
minhaVarLoadVars = new LoadVars(); // Onde a variável(minhaVarLoadVars) é um nome qualquer.
Métodos da Classe LoadVars()
1) getBytesLoaded()
Descrição: Retorna o total dos dados já carregados.
2) getBytesTotal()
Descrição: Retorna o tamanho total em bytes dos dados.
3) load(url)
Descrição: Carrega uma página ou arquivo que retorne algum dado ou informação.
Argumento url: Caminho da página(page.php, arq.txt).
4) send(url, target, method)
Descrição: Envia dados para a url informada.
Argumento url: Caminho da página(processa_formulario.php).
Argumento target: janelas possivéis(_top, _blank).
Argumento method: O tipo do método que será enviado(GET ou POST).
5) sendAndLoad(url, objetoLoad, method)
Descrição: Envia dados para a url informada ao mesmo tempo que recebe.
Argumento url: Caminho da página(processa_formulario.php).
Argumento objetoLoad: Nova instância da classe LoadVars() que recebe as informações da url.
Argumento method: O tipo do método que será enviado(GET ou POST).
6) toString()
Descrição: Converte um objeto do tipo LoadVars() para uma String.
Propriedades da Classe LoadVars()
1) contentType
Descrição: Declara o tipo da extensão, mais conhecido como MIME(Multi-purpose Internet Mail Extension).
2) loaded
Descrição: Retorna um boolean(true ou false) caso os dados tenham sido carregado ou enviado.
Evento da Classe LoadVars()
1) onLoad
Descrição: O evento é chamado quando concluído o carregamento dos dados.
Na próxima página iremos carregar um arquivo txt para o flash.
Crie um arquivo txt no formato abaixo.
arquivo.txt
carregandoTxt = Php com FlashMX, vai Corinthians.
|
Lembrando que precisa colocar antes do Texto a declaração "carregandoTxt=" para que o flash o reconheça.
Crie um filme(flash_arquivo.fla) do tamanho(width 300 px, height 300 px backGroundColor: black) com apenas 1 frame, faça um campo dinâmico com o nome "variavelTxt" e coloque o seguinte script.
loadTxt = new LoadVars();
loadTxt.load("arquivo.txt");
loadTxt.onLoad = function(success) {
_root.variavelTxt = loadTxt.carregandoTxt; // Variável(carregandoTxt) declarada no txt.
};
|
O txt e o filme precisa estarem no mesmo diretório.
Crie uma página para chamar o filme(swf).
arquivo.php
<html>
<head>
<title>Php com FlashMX</title>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="300">
<param name="movie" value="flash_arquivo.swf">
<param name="menu" value="false">
<param name="quality" value="high">
<embed src="flash_arquivo.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="300"></embed></object>
</body>
</html>
|
Pronto, chame no browser e verá o resultado.
Para baixar os arquivos deste exemplo http://www.phpbrasil.com/scripts/download.php/id/2484
Na próxima página iremos carregar dados de uma tabela para o flash.
Execute o Sql
sql_db.sql
CREATE TABLE `nome` (
`id` int(10) NOT NULL auto_increment,
`nome` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
INSERT INTO nome VALUES("1","Rodrigo Rodigues dos Santos");
INSERT INTO nome VALUES("2","Corinthians Grande");
INSERT INTO nome VALUES("3","Php Comunidade");
INSERT INTO nome VALUES("4","Java Sun Technologies");
INSERT INTO nome VALUES("5","Asp Big Shit");
|
Crie a página de conexão
conexao.php
<?php
$conn = @mysql_connect("localhost", "root", "xxx") or die(mysql_error());
$db = @mysql_select_db("test", $conn) or die(mysql_error());
$sql = "select nome from nome order by nome desc";
$sqlQuery = @mysql_query($sql, $conn) or die(mysql_error());
$i = 0;
while($result = @mysql_fetch_array($sqlQuery)){
echo "&nome$i = ".$result[0]; // Não pode esquecer de acrescentar o "&" no começo.
$i++;
}
mysql_close($conn);
?>
|
IMPORTANTE: Para o flash receber os dados precisa acrescentar no ínicio da variável o operador "&".
Crie um filme(flash_php.fla) do tamanho(width 300 px, height 300 px backGroundColor: black) com apenas 1 frame, faça um campo dinâmico com o nome "variavelPhp" e coloque o seguinte script.
loadPhp = new LoadVars();
loadPhp.load("conexao.php");
loadPhp.onLoad = function(success) {
arrayNome = new Array();
incrementador = 0;
for (nome in loadPhp) {
arrayNome[incrementador] = loadPhp[nome]; // Indice(nome) declarado na página.
incrementador += 1;
}
for (i=0; i<incrementador-1; i++) {
_root.variavelPhp += arrayNome[i]+"\n";
}
};
|
Crie uma página para chamar o filme.
php_flash.php
<html>
<head>
<title>Php com FlashMX</title>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="300">
<param name="movie" value="flash_php.swf">
<param name="menu" value="false">
<param name="quality" value="high">
<embed src="flash_php.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="300"></embed></object>
</body>
</html>
|
Pronto, chame no browser e verá o resultado.
Para baixar os arquivos deste exemplo http://www.phpbrasil.com/scripts/download.php/id/2485
Na próxima página iremos enviar um formulário do flash para o Php e esperando uma resposta da página.
Crie um filme(flash_formulario.fla) do tamanho(width 500 px, height 300 px backGroundColor: gray) com 3 layers e em cada layer 1 frame, crie 3 campos "inputs" com os nomes "nome, email e comentário" e um campo dinâmico chamado "msg", crie um botão para enviar o formulário, o meu ficou assim.
%http://www.fotolist.com.br/galeriafotos/RODRIGOTIMAO20040727173307.JPG%
No primeiro layer deixe somente os actions, segue o script.
btEnviar.onRelease = function() {
if (_root.nome eq "" || _root.nome.length<=0) {
_root.msg = "Campo Nome é obrigatório.";
} else if (_root.email.indexOf("@") == -1 || _root.email eq "") {
_root.msg = "Campo Email inválido.";
} else if (_root.comentario eq "" || _root.comentario.length<=0) {
_root.msg = "Campo Comentário é obrigatório.";
} else {
enviaEmail = new LoadVars();
enviaEmail.nomeFlash = _root.nome; // Variável(nomeFlash) será resgatada no Php.
enviaEmail.emailFlash = _root.email; // Variável(emailFlash) será resgatada no Php.
enviaEmail.comentarioFlash = _root.comentario; // Variável(comentarioFlash) será resgatada no Php.
isEnviaEmail = new LoadVars();
enviaEmail.sendAndLoad("processa_formulario.php", isEnviaEmail, "POST"); // Página que irá enviar o email.
_root.msg = "Enviando Comentário para o email("+_root.email+")...";
isEnviaEmail.onLoad = function(success) {
isEnvio = isEnviaEmail.isEnvio; // Variável(isEnvio) do Php retorna um boolean(verdadeiro ou falso).
if (isEnvio eq "true") {
_root.msg = "Email enviado com sucesso...";
_root.nome = ""; // Limpa campo.
_root.email = ""; // Limpa campo.
_root.comentario = ""; // Limpa campo.
} else {
_root.msg = "Não enviou o email.";
_root.nome = ""; // Limpa campo.
_root.email = ""; // Limpa campo.
_root.comentario = ""; // Limpa campo.
}
};
}
};
stop();
|
A primeira parte do script verifica se os campos "nome, email e comentário" estão vazios, estando ok envia para a página processar o formulário e retorna uma resposta(boolean da variável "isEnvio") para o filme.
Crie a página que irá enviar o email.
processa_formulario.php
<?php
$nome = $_POST['nomeFlash']; // Variável do Flash.
$email = $_POST['emailFlash']; // Variável do Flash.
$comentario = $_POST['comentarioFlash']; // Variável do Flash.
if(!( empty($nome) and empty($email) and empty($comentario) )){
$subject = "Php com FlashMX";
$message .= "Olá <b>$nome</b>.<br>\n";
$message .= "Você postou o seguinte assunto<br>\n ".nl2br($comentario)."<br>\n";
$headers = "From: rodrigo_coringao@".substr(str_replace("w", "", $_SERVER['SERVER_NAME']), 1)."\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
if(mail($email, $subject, $message, $headers)){
echo "&isEnvio=true";
} else {
echo "&isEnvio=false";
}
} else {
echo "&isEnvio=false";
}
?>
|
Enviando o email a variável(isEnvio) retorna um true.
Crie uma página para chamar o filme.
php_formulario.php
<html>
<head>
<title>Php com FlashMX</title>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="500" height="300">
<param name="movie" value="flash_formulario.swf">
<param name="menu" value="false">
<param name="quality" value="high">
<embed src="flash_formulario.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="300"></embed></object>
</body>
</html>
|
Pronto, chame no browser e verá o resultado.
Para baixar os arquivos deste exemplo http://www.phpbrasil.com/scripts/download.php/id/2486
Referências:
www.macromedia.com
www.pontoflash.com.br
Sem mais, Rodrigo Rodrigues.
|