LUIZ HERRERA (117 pts)

DEN IVANOV (260 pts)

PEDRO CLAUDIO (50 pts)

GUILHERME SCHEIBE (49 pts)

EDUARDO CARREGA (150 pts)

MARCELO SIQUEIRA (96 pts)

STICKMAN (155 pts)

ILVA RUDEV (90 pts)

JOÃO NETO (78 pts)

RÔMULO NUNES (32 pts)

GABRIEL SPORCH (53 pts)

JOTA LAGO (40 pts)
Treinamento PontoFlash de Flash e ActionScript

Como criar rótulos para um botão criados dinamicamente, sem precisar declarar um a um?

Como eu faço um carregando bem simples no flash5?

Softwares úteis para desenvolver junto ao flash:

Usar uma variável importada de um TXT numa função do Flash.

Preciso criar uma interação Asp + Flash para login e senha.

Eu preciso que toque um som quando uma bolinha bate numa raquete!

Alguém poderia me explicar o funcionamento do comando duplicatemovie?

Tamanho de banners

Como identificar o ponto de registro em um objeto criado por actionscript no MX?

Um preloader para o seu site, atualizado (Jonas Galvez).

Quero fazer um objeto ficar ir alterando sua propriedade '_alpha' o tempo todo.

Como somar os numerais de uma data (dia, mês e ano)?

Estou com uma dúvida pra setar as coordenadas para o MC.

Como funcionam os operadores (=, ==, + , ++)?
Objeto Movieclip - Propriedades

HACKED - ANONYMOUS

Integração Flash X ColdFusion.

Conceitos de Design - Apresentação.

Menu estático.

GetMySQLData para Flash5 (segunda parte)

Novas propriedade de botões no FireworksMX

Plugins variados para seu trabalho em design

Sistema de busca utilizando Flash + ASP .

Entendendo como funciona um preloader - Segunda parte

Botão avançar e recuar.

Labirinto - Plataforma de jogo em terceira pessoa em flash 5: 1° parte
Click determiner

Preload advanced

Giratoria

Clock

Tween motion

Parede

Email com ASP

Efeito Blur

Lente de aumento

RGB random

Lightings

Texto html
HOME | TUTORIAIS
Comunicação Flash-PHp-MySql - Objeto LoadVars
por Helen Triolo

Um objeto LoadVars é usado para transferir dados para e/ou de um script Serve Side, como PHP, ASP, CF, Perl, JSP, de/para um filme Flash MX. Propriedades do objeto LoadVars serão enviadas para o script como variáveis, tanto pelos métodos POST ou GET, e qualquer variável retornada do script será avaliada no Flash como propriedade do objeto LoadVars especificado no método load.

Usando LoadVars.send

format = loadVarsObject.send( url, target, method )
// onde todas são expressões

No exemplo do tutorial Flash-PHP, nessa mesma seção, nós queremos enviar a letra da aba selecionada de maneira que o script php a possa usar para pesquisar no Banco de dados. Então um objeto loadVars deve ser criado e uma de suas propriedades declarada para aquela letra. Antes de olharmos o código no exemplo do tutorial, eis um outro exemplo no qual um valor é declarado para uma propriedade de um objeto LoadVars e enviado a um script php:

var c = new LoadVars();
c.thisLetter = "A";
c.send("dbquery.php","_self","POST");

Esse script abaixo lê a propriedade como uma variável POST, a usa para pesquisar no Banco da dados e mostra a informação encontrada:

<?php
mysql_connect("servername","username","password");
mysql_select_db("dbname");

$qr = mysql_query("SELECT * FROM contacts WHERE LEFT(lastName,1) = '".$HTTP_POST_VARS['thisLetter']."'");

// display visitors row (1)
$nrows = mysql_num_rows($qr);
for ($i=0; $i < $nrows; $i++) {
   $row = mysql_fetch_array($qr);
   echo $row['lastName'].", ".$row['firstName']."<br>";
   echo " ".$row['phone']." ".$row['email']."<br>";
   echo " ".$row['picFile'].": ".$row['caption']."<br><br>";
}
?>

Eis o que teríamos na janela de saída (a mesma janela na qual o filme Flash está rodando, desde que especifiquemos "_self" como o alvo em nosso loadVars.send):

Anderson, Lois
301-424-5555 lois@yahoo.com
lois.jpg: Lois, 2001

Armand, Cheryl and Joe
912-948-4444 armandcj@hh.com
babysue.jpg: C and J's baby Sue, 9 days old

(etc)

Como usamos POST como parâmetro de envio, temos que ler a variável com PHP $HTTP_POST_VARS. Se você mesmo precisa construir a query string, você pode simplesmente enviar sem especificar um método, que será definido para GET por causa do querystring anexado:

var c = new LoadVars();
c.send("dbquery.php?thisLetter=A","newWindow");

e isso em dbquery.php:

<?php
mysql_connect("servername","username","password");
mysql_select_db("dbname");

$qr = mysql_query("SELECT * FROM contacts
WHERE LEFT(lastName,1) = '".$HTTP_GET_VARS['thisLetter']."'");

// display visitors row (1)
$nrows = mysql_num_rows($qr);
for ($i=0; $i < $nrows; $i++) {
   $row = mysql_fetch_array($qr);
   echo $row['lastName'].", ".$row['firstName']."<br>";
   echo " ".$row['phone']." ".$row['email']."<br>";
   echo " ".$row['picFile'].": ".$row['caption']."<br><br>";
}
?>

produz a mesma saída que acima. Quando se escreve uma aplicação Flash / Server Side, é sempre bom gerar simples testes, como o código acima, usando .send para ter certeza que as variáveis foram enviadas com sucesso, asntes de testar a aplicação completa.

Recebendo com LoadVars.load

format = loadVarsObject.load( url )
// onde url é uma expressão

Agora que temos variáveis sendo enviadas para o script php e usadas com sucesso lá, como retornar as informações para o Flash? Antes de enviar e receber ao mesmo tempo, vamos apenas receber com o método load do objeto loadVars.

   Variáveis enviadas para o Flash de um script Server Side devem sempre ser enviadas como uma string como "var=valor" separados por & (por exemplo, lastName=Anderson&phone=301-424-5555). Se uma string é enviada em resposta a um método load de um objeto loadVars, as variáveis podem então serem lidas no Flash como propriedades de um objeto loadVars. Mas há mais uma coisa que precisa ser levada em consideração. Receber informações de um Banco de Dados e devolve-las para o Flash não é algo que acontece instantaneamente -- algo precisa avisar ao Flash quando a operação for completada, para que o filme não tente usar as variáveis antes delas estarem realmente acessíveis. É preciso definir uma função que só será executada quando os dados tiverem sido retornados e colocar essa função na propriedade onLoad do objeto LoadVars. Ela dirá: quando as variáveis tiverem sido recebidas, execute a função. Isso pode ser feito de duas maneiras: com uma função anônima (também chamada função literal, eu acho):

var c = new LoadVars();
c.onLoad = function() {
   returnvals.text = "returned from php: \n\n";
   for (i in this) {
      returnvals.text += i + " = " + this[i] + "\n";
   }
};

ou com uma função nomeada, que é então designada (mas não chamada, isto é, não coloque () depois do nome da função) para a propriedade onLoad:

function showValues() {
   returnvals.text = "returned from php: \n\n";
   for (i in this) {
      returnvals.text += i + " = " + this[i] + "\n";
   }
}

var c = new LoadVars();
c.onLoad = showValues;

Note que em ambos os caminhos referir-se a "this", dentro da função, é o mesmo que chamar o objeto loadVars pelo nome. Dessa maneira, ambos os códigos acima devem ser seguidos pela linha de código abaixo para realmente solicitar os dados,

c.load("passvars.php");

e em passvars.php, isso:

<?php
$lastName = "Anderson";
$phone = "301-424-5555";
echo "lastName=".$lastName."&phone=".$phone;
?>

nós obtemos a seguinte saída:

returned from php:

phone = 301-424-5555
lastName = Anderson
onLoad = [type Function]

   As duas variáveis que queremos receber são phone e lastName. No nosso exemplo, onLoad também mostrará, mesmo que que não seja uma variável, por ser uma propriedade do objeto loadVars. Mas usualmente, você sabe que variáveis está esperando, que fará alguma coisa apenas com aquela variável e vai ignorar qualquer outra propriedade do objeto loadVars. Você pode também deletar uma propriedade supérflua antes de carregar (ainda que onLoad não seja supérfluo e precise sempre ser uma propriedade do objeto loadVars para que este funcione corretamente).

Enviando e recebendo ao mesmo tempo com LoadVars.sendAndLoad

format = loadVarsObject.sendAndLoad( url, loadVarsObject, method )
// onde url e method são expressões e loadVarsObject não

No nosso exemplo, queremos passar a letra selecionada e receber todos os dados correspondentes encontrados. Para isso a rotina de nosso php deve devolver uma string var=valor de todas aquelas variáveis e nosso filme Flash deverá usar as propriedades certas do objeto loadVars para mostrá-las no campo de texto.

O script php retorna uma string mais ou menos assim:

"n=4&lastName0=Anderson&firstName0=Lois&phone=301-424-5555&...&caption3=lastyear"

com os valores de quatro registros com o último nome começando com a letra A. Note que adicionamos uma variável no começo da string para dizer ao Flash quantos registros são esperados. Assim podemos montar um loop apropriado para lê-las. Eis como o script php se parece:

$nrows = mysql_num_rows($qr);
$rString = "n=".$nrows;

for ($i=0; $i < $nrows; $i++) {
   $row = mysql_fetch_array($qr);
   $rString .= "&lastName".$i."=".$row['lastName'].
      "&firstName".$i."=".$row['firstName'];
   $rString .= "&phone".$i."=".$row['phone']."&email".$i."=".$row['email'];
   $rString .= "&picFile".$i."=".$row['picFile'].
      "&caption".$i."=".$row['caption'];
}
echo $rString;

nós já vimos quase todos os códigos do flash; Agora devemos apenas definir a função para executar quando as variáveis forem retornadas (para ler e fazer algo com aquelas variáveis) e depois disparar o comando sendAndLoad adequado. Veja o código do filme Flash:

function showContent() {
   var i;
   content.htmlText = "";
   for (i=0; i < this.n; i++) {
      if (this["picFile"+i] != "") {
         content.htmlText +="<b>" + this["firstName"+i] + " " + this["lastName"+i] + "</b>" + "<a href='asfunction:showjpg," + this["picFile"+i] + "," + escape(this["caption"+i]) + "'> (<font color='#0000cc'>pic</font>)</a><br>";
      } else {
         content.htmlText += "<b>" + this["firstName"+i] + " " + this["lastName"+i] + "</b><br>";
      }
   content.htmlText += " " + this["phone"+i] + "<br>";
   content.htmlText += " <a href='mailto:" + this["email"+i] + "'>" + this["email"+i] + "</a><br><br>";
   }
}

// Cria um novo objeto load vars c para transferir dados
var c = new LoadVars();
c.onLoad = showContent;
// algumas linhas longas desse código nessa célula desse HTML ficam quebradas

e lembre-se que executamos o próprio sendAndLoad de dentro da rotina onRelease da aba selecionada, com esse código:

this["tab"+chr(i)].onRelease = function() {
...
c.sendAndLoad("flashmx_dbPassAndReturnString.php",c,"POST");
}

Assim podemos enviar A, B, ou C para o script php e fazer alguma coisa com as variáveis retornadas, usando o mesmo objeto LoadVars (c) tanto para enviar quanto para receber. Para entender melhor o código da função showContent, deve-se lembrar que essas são formas equivalentes de acessar a propriedade phone3 do objeto c:

c.phone3

ou

c["phone"+3]

ou

i=3
c["phone"+i]

ou

i=3
this["phone"+i]
//se o código estiver dentro da função designada para c

(Para mais informações leia o tutorial "objeto Movieclip - endereçamento", nessa mesma seção, que se aplica a todos os objetos no actionscript, não apenas a movieclips).
Assim, nós simplesmente tomamos cada propriedade retornada e as usamos, como desejamos, nos campos de texto.

asfunction

format = asfunction:functionname,param
// onde param é uma expressão

Há mais duas coisas interessantes no exemplo. A primeira é o uso do asfunction para chamar uma função de dentro do Flash. A segunda é que carregamos JPGs dinamicamente para dentro do Flash. Como você pode ver na função showContent acima, o asfunction nos permite criar um link como um html dentro de um campo de texto no Flash para ativar outra rotina. Nesse caso, chamamos a função showjpg que passa um parâmetro (apenas um parâmetro) que contém o nome do arquivo jpg e a legenda (caption), separadso por um #. Veja como showjpg se parece:

function showjpg(paramString) {
// params[0] = o nome do arquivo
// params[1] = legenda
var params = paramString.split("#");
picHolder.loadMovie(params[0]);
caption.text = unescape(params[1]);
}

A primeira coisa que esse código faz é dividir (split) o parâmetro transmitido em dois parâmetros que precisamos, usando a função split para produzir uma array de dois elementos. O primeiro elemnto guarda o nome do JPG, o segundo guarda a legenda.

carregando um jpg

format = mcInstanceName.loadMovie(jpgfile)
// onde jpgfile é uma expressão

A linha

picHolder.loadMovie(params[0]);

diz: carregue a imagem especificada pelo nome do arquivo armazenado em params[0] para dentro do movieclip picHolder. Como picHolder foi criado com um ponto de registro no alto à esquerda (0,0), e todos os arquivos JPGs têm o seu tamanho, as imagens são carregadas no local exato e nada mais é preciso fazer. Depois de carregar o jpg no seu alvo, nós preenchemos a legenda com o segundo elemento da array.

Isso é tudo. Temos o objeto LoadVars para enviar dados, o script php para usá-los e devolvê-los e a função showContents para tratá-los uma vez recebidos pelo Flash.

Você pode baixar aqui o fla e o php usado no exemplo.

Introdução - LoadVars - Editar banco de dados

Tradução:
Sérgio Ramalho



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
0 comentário