PEDRO CLAUDIO (50 pts)

AUTOR DESCONHECIDO (100 pts)

STICKMAN (155 pts)

LUIZ HERRERA (117 pts)

EDUARDO PERROUD (52 pts)

IRAPUAN MARTINEZ (45 pts)

ILVA RUDEV (90 pts)

FLASHGURU (155 pts)

KEN AWAMURA (130 pts)

HELEN TRIOLO (444 pts)

MARCELO SIQUEIRA (96 pts)

DEMIS BUCCI (50 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um preloader dinâmico no Flash?

Como salvar uma variável do Flash dentro de um XML ou ASP?

Como faço para buscar de um FlashMovie notícias de um txt?

Como setar _alpha para um texto criado dinamicamente no FlashMX?

O que é um Path Absoluto e um Path Relativo?

Como usar os métodos de desenho do Flash?

Estou com dificuldades de usar fontes true type sem anti-aliasing.

Como fazer para que meu flash aberto com Load Movie tenha fundo transparente.

Quero controlar dois movieclips com sons. Tocar um, parar outro e vice-versa.

Quero fazer um loop infinito.

Dicas de um designer.

Como atualizar o texto de um filme Flash sem precisar editá-lo? Como funciona esse objeto loadVars?

Como eu posso simular um sorteio de dados?

Como justificar um texto e criar uma barra colorida?
Janelas pop-up e semi-full no flash

Flash MX 2004 - class e prototype

Scroll dinâmico no Flash 5.

Como enevoar as bordas de uma imagem no Fireworks.

Tratamento de imagens e alguns efeitos no Fireworks

Aplicação simultânea de Fio e Sombra a bitmaps - Fireworks

GetMySQLData para Flash5 (primeira parte)

Executar funções de JavaScript (Flash+JavaScript).

Uso da tecla tab num formulário Flash.

Carregador inteligente no Flash 5.

Gira logo.

Formulário interagindo Flash e PHP.
Bola de vidro

Combobox com interação em ASP

Replace

Mouseline

Formulário com ASP

Combobox

Slicemenu 2

Mapa Mundi

Menu Popup

Dots2a

Duplicate MC

Intromar
HOME | TUTORIAIS
GetMySQLData para Flash5 (primeira parte)
por Helen Triolo

Primeira parte          Segunda parte

 

Conectividade em banco de dados - quem pode viver sem ela?

Logo que acabei de mudar, com sucesso, este site de um servidor NT (onde eu tinha um banco de dados Access e monstruosos problemas de instabilidade dos quais não quero nem falar) para um servidor Unix com um banco de dados MySQL, me pareceu uma boa oportunidade para passar algumas informações sobre como fazer com que o Flash e o PHP falem um com o outro para descarregar os conteúdos de um banco de dados de MySQL.

Especificamente, vamos ver como enviar dados do Flash para uma página PHP, o formato PHP para conseguir com que os dados requisitados voltem para o Flash, como checar quando a informação que queremos do banco de dados tenha sido retornada e como mostrá-los. A aplicação que criei é do tipo que checa o banco de dados conectado para verificar quem está visitando o site e o que estão procurando.

Aqui estão as interações específicas nesta aplicação:

1 - (no Flash) Obter uma data e um número do usuário, que irá especificar quantos registros retornar, para cada dia.
2 - (no Flash) Verificar que a data e o número estão ambos dentro de um limite determinado.
3 - (no Flash) Enviar a informação para a página php.
4 - (no PHP) Examine o banco de dados para achar o total vistas na página, visitantes, e páginas mais freqüentadas para uma determinada data.
5 - (no PHP) Retorne um sumário dessas informações ao Flash.
6 - (no Flash) Mostre a informação retornada.

Antes que nós escrevamos qualquer código para fazer essas coisas, temos que definir a estrutura do filme. Quantos quadros vamos precisar, e o que irá em cada quadro? As variáveis serão passadas da linha de tempo principal para a página PHP, ou através de um movieclip? Esta última questão é uma das que respondemos sempre com "movieclip", já que permite que somente as variáveis que definimos sejam enviadas (quando um GET ou POST é feito do Flash para um programa server-side, todas as variáveis na linha de tempo fazendo a operação serão enviadas). Se enviarmos da linha de tempo principal, um monte de variáveis estranhas será enviado desnecessariamente para a página PHP. Enviar via movieclip também significa que poderemos fazer uso de onClipEvent(data) para checar o dado retornado.

Nota: Você pode aprimorar esse tutorial usando o objeto LoadVars disponível a partir do FlashMX.

Definir a estrutura do filme

A linha de tempo para este filme é extremamente simples: um quadro para obter a saída (input) do usuário, outro quadro para mostrar os resultados retornados. O primeiro é rotulado "start" e o segundo "displaydata". O quadro "start" tem saída de campo de textos, um botão para iniciar a requisição, um campo de texto dinâmico para exibir o estado corrente, e um movieclip controlador para fazer o envio e recebimento de dados atuais (este clipe continua também dentro do quadro exibir). O quadro "displaydata" possui vários campos de texto dinâmicos para mostrar as informações sobre o arquivo fonte que são retornadas pelo php. Aqui estão os conteúdos desses quadros:

Quadro 1: "start"

Quadro 10: "displaydata"

Vamos iniciar as variáveis

Em quase todas aplicações Flash, existe a necessidade de iniciar algumas variáveis. Um bom lugar para fazer isto é nas ações de quadro do primeiro quadro, que são executadas antes de qualquer outra coisa no filme, antes mesmo do que as rotinas onClipEvent(load) nos movieclips no quadro 1. Nosso código de inicialização se parece com isso:

datavalues._visible = 0;
ldom = [31, 28, 31, 25, 31, 30, 31, 31, 30, 31, 31, 31];
// get current date values
datenow = new Date();
daynow = datenow.getDate();
monthnow = datenow.getMonth();
// monthnow = 0-11
yearnow = datenow.getFullYear();
lastmonth = (monthnow == 0 ? 11 : monthnow-1);
// set default choosedate values
// default to display yesterday's date

chooseday = (daynow == 1 ? ldom[lastmonth] : daynow-1);
// display last month if current date is 1st of month
choosemonth = (chooseday == daynow-1 ? monthnow+1 : lastmonth+1);
// display last year if current date is Jan 1
chooseyear = ((daynow == 1 && monthnow == 0) ? yearnow-1 : yearnow);
stop();

A primeira linha deste código esconde o movieclip "datavalues", que contém os campos de saída (output), de forma que este não será mostrado antes de que os dados estejam disponíveis. Colocamos os campos de texto dentro de um movieclip de forma que estejam disponíveis no primeiro quadro a ser preenchido pelo nosso clipe controlador, mas capaz de se fazer invisível ao usuário.

Criamos, também, algumas variáveis de datas que iremos necessitar para conferir a entrada do usuário. Configuramos a data padrão para a data do dia anterior e uma parada no quadro 1 para aguardar a entrada (input) do usuário.

Na próxima página, veremos os passos para obter aquela entrada e a enviarmos para uma página PHP.

Enviar para o PHP - Adicionar código para obter entrada do usuário, verificá-la e passá-la ao PHP

Já que temos uma ação "Stop" no quadro 1, nada acontecerá neste filme até que o usuário pressione o botão "Show Me" (presumivelmente depois de preencher a data e os campos de número, mas não utilizando os valores padrão lá). Assim, a primeira coisa que o botão deve fazer é verificar que a data e os números entrados estão dentro do limite. Então, já que decidimos enviar dados via movieclip, necessitamos ter certeza de que as variáveis que nós queremos enviar estão definidas neste movieclip.

Este é o código no botão "Show Me". Criamos o campo (mensagem de erro) de status em branco para começar, crie variáveis de data para fazer nossa comparação e então conferir os números que o usuário entrou. Caso seja encontrado um valor fora do limite, uma mensagem é exibida. Caso contrário, o movieclip controlador de datas (datacontroller) determina às variáveis que nós desejamos passar ao PHP, e sua bandeira de "pronto para enviar" (readySend) é configurada para verdadeiro.

on (release) {
   statusmsg = "";
   // check for date between 10/8/2001 and now
   userdate = new Date(chooseyear, choosemonth-1, chooseday);
   startdate = new Date(2001, 9, 7);
   if (!(userdate-startdate>0 && datenow-userdate>0)) {
      statusmsg = "Enter a date between 10/8/2001 and "+(monthnow+1)+"/"+daynow+"/"+yearnow;
   } else {
      // check for number of records chosen between 5 and 10
      if (!(thisnumber>=5 && thisnumber<=10)) {
         statusmsg = "Enter a number between 5 and 10";
      } else {
         datacontroller.thismonth = choosemonth;
         datacontroller.thisyear = chooseyear;
         datacontroller.thisday = chooseday;
         datacontroller.thisnumber = thisnumber;
         datacontroller.readySend = 1;
      }
   }
}


Agora vamos dar uma olhada no que o movieclip "datacontroller" está fazendo. Basicamente está sentado sem fazer nada, exceto a verificação da bandeira "pronto para enviar" para ver quando ela assinala verdade. Isto é feito através de um loop onClipEvent(enterFrame), claro. Este é o código que pusemos nas Ações do Objeto (Object Actions) de "datacontroller" na nossa primeira interação com este filme:

onClipEvent (load) {
   readySend = 0;
}
onClipEvent (enterFrame) {
   if (readySend) {
      readySend = 0;
      _root.statusmsg = "Getting data...";
      getURL("checkdata.php", "_self", "POST");
   }
}

Ele verifica pelo sinal "readySend" é verdadeiro (que foi configurado pelo botão Show Me), exibe uma mensagem de que ele vai obter os dados (porque isto não acontece instantaneamente e seu usuário pode gostar de saber o que está acontecendo) e então faz um "getURL" para uma página php. Por que uma getURL e não uma loadVariables? Porque queremos verificar e certificar-nos de que nossas variáveis estão sendo enviadas corretamente antes de continuar o desenvolvimento. Daí, chamamos o checkdata.php utilizando o método POST e especificando que a página php deve abrir na mesma janela corrente em que o nosso filme Flash está rodando. Isto é o que o checkdata.php se parece:

<?php
$day = $HTTP_POST_VARS['thisday'];
$number = $HTTP_POST_VARS['thisnumber'];
$month = $HTTP_POST_VARS['thismonth'];
$year = $HTTP_POST_VARS['thisyear'];

echo "date read in: ".$month." ".$day." ".$year."<br>";
echo "number read in: ".$number;
?>

E a saída na janela do navegador deve se parecer com alguma coisa como:

data introduzida: 10 10 2001
número introduzido: 7

A próxima página olha para o que o php faz com a data e como ele é retornado ao Flash.

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