Eu sempre quis que o meu computador fosse tão fácil de usar como o meu telefone, o meu desejo foi realizado pois eu já não consigo descobrir como usar o meu telefone.

Album do Brasileirão

Depois de jogarmos muito o Album Oficial Fifa da Copa 2010 eu e alguns amigos do trabalho decidimos criar um semelhante para o campeonato Brasileiro.

O Projeto é todo feito em Flash + AS3.

A maior dificuldade foi fazer o Flash se conectar com o banco de dados Mysql, tive que usar uma ponte (arquivos em PHP que recebe os comandos SQL do Flash), o resultado está sendo satisfatório.

Algumas imagens do Projeto:

Podem conferir o projeto em www.reissoft.com/album

Para quem quiser estudar, abaixo os códigos da conexão do Flash com Mysql

Código AS3.

function LerDados(arq:String,usuario:String,campo:String,tabela:String,where:String,retorno,padrao:String = ''):String {
	retorno.text = '';
	atu.visible = true;
	var mostra:TextField = new TextField();
	var parametros:URLVariables = new URLVariables();
	parametros.sql= usuario;
	parametros.campo = campo;
	parametros.tabela = tabela;
	parametros.where = where;
	var loader:URLLoader;
	var request:URLRequest=new URLRequest();
	request.data = parametros;
	request.method = URLRequestMethod.POST;
	request.url = arq;
	loader = new URLLoader();

	try {
		loader.load(request);
	} catch (error:SecurityError) {
		atu.visible = false;
		trace("Ocorreu algum erro.");
	}
	loader.addEventListener(IOErrorEvent.IO_ERROR, erroTratado);
	loader.addEventListener(Event.COMPLETE, carregou);
	mostra.x=10;
	mostra.y=10;
	mostra.background=true;
	mostra.autoSize=TextFieldAutoSize.LEFT;
	addChild(mostra);
	function carregou(event:Event):void {
		atu.visible = false;
		trace('retorno do LErdados',loader.data)
		retorno.text =loader.data
		if(retorno.text == '' ){
			retorno.text = padrao;
		}
		              ;
	}

	function erroTratado(e:IOErrorEvent):void {
		retorno.text="Erro: "+e;
	}
	return retorno.text;
}

function execSQL(SQL:String,executa = null) {
	trace('executando...',SQL)
	atu.visible = true;
	var parametros:URLVariables = new URLVariables();
	parametros.sql=SQL;

	parametros.fpVersion = flash.system.Capabilities.version;
	var mostra:TextField = new TextField();
	var loader:URLLoader;
	var request:URLRequest=new URLRequest();
	request.method = URLRequestMethod.POST;
    request.data = parametros;
	request.url = sqlURL;
	loader = new URLLoader();

	try {
		loader.load(request);
	} catch (error:SecurityError) {
		mostra.text=("Ocorreu algum erro.");
	}
	loader.addEventListener(IOErrorEvent.IO_ERROR, erroTratado);
	loader.addEventListener(Event.COMPLETE, carregou);

	function carregou(event:Event):void {
		atu.visible = false;
		if(loader.data == '1' ){
			info.text="Ok";
			if(executa != null){
				executa();
			}
		}else{
			info.text=loader.data;
		}
		//LerDados('retorno.php');
		              ;
	}

	function erroTratado(e:IOErrorEvent):void {
		info.text="Erro: "+e;
	}

}

function LerDadosSil(arq:String,usuario:String,campo:String,tabela:String,where:String,retorno,padrao:String = ''):String {
	retorno.text = '';
	//atu.visible = true;
	var mostra:TextField = new TextField();
	var parametros:URLVariables = new URLVariables();
	parametros.sql= usuario;
	parametros.campo = campo;
	parametros.tabela = tabela;
	parametros.where = where;
	var loader:URLLoader;
	var request:URLRequest=new URLRequest();
	request.data = parametros;
	request.method = URLRequestMethod.POST;
	request.url = arq;
	loader = new URLLoader();

	try {
		loader.load(request);
	} catch (error:SecurityError) {
		atu.visible = false;
		trace("Ocorreu algum erro.");
	}
	loader.addEventListener(IOErrorEvent.IO_ERROR, erroTratado);
	loader.addEventListener(Event.COMPLETE, carregou);
	mostra.x=10;
	mostra.y=10;
	mostra.background=true;
	mostra.autoSize=TextFieldAutoSize.LEFT;
	addChild(mostra);
	function carregou(event:Event):void {
		atu.visible = false;
		retorno.text =loader.data
		if(retorno.text == '' ){
			retorno.text = padrao;
		}
		              ;
	}

	function erroTratado(e:IOErrorEvent):void {
		retorno.text="Erro: "+e;
	}
	return retorno.text;
}

Arquivo sql.php

<?php

// Inclui o script de conexão.
require_once('conexao.php');

// Resgatando os dados vindos do Flash e os converte para ISO-8859-1.
//$id = utf8_decode($_POST['id']);
$exe = utf8_decode($_POST['sql']);
//$senha = utf8_decode($_POST['senha']);

// Query responsável por inserir novos dados no db.
$query =  str_replace("\'", "'", "$exe");

// Através da função mysql_query(), a query é executada.
$sql = mysql_query($query);

// Retorna 1 (true) ou 0 (false), será usado para verificar no Flash se o SQL foi completado com sucesso.
echo $sql;

?>

Arquivo retorno.php

<?php

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Data no passado
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Sempre modificado
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
// Os cabeçalhos acima evitam que o arquivo seja colocado em cache, subscrevendo quaisquer configurações do usuário.

// Inclui o script de conexão.
require_once('conexao.php');
$exe = utf8_decode($_POST['sql']);
$campo = utf8_decode($_POST['campo']);
$tabela = utf8_decode($_POST['tabela']);
$where = utf8_decode($_POST['where']);
// Resgatando os dados do db 'guestbook'.
$query = "SELECT ".$campo." FROM ".$tabela.$where;
$query =str_replace("\'", "'",$query);
// Através da função mysql_query(), a query é executada.

$sql = mysql_query($query);

$dados = ''; // Variável responsável por armazenar o resultado a cada loop.
$nLoop = 0; // Variável responsável por armazenar o número total de loops.

// A função mysql_fetch_array() gera um array com o resultando, e o while foi usado para colocar todos os resultados na variável '$dados'
// Já no formato em que o Flash reconheça (variável = valor), além do caractere '&' para separarem as variáveis.
while($n = mysql_fetch_array($sql)){
$dados .= $n[$campo];

$nLoop++; //soma 1 a cada loop.
};

// Imprime os dados obtidos no loop e o codifica para UFT-8
// e em seguida concatena (une) o número total de loops para que seja impresso junto aos dados.
echo utf8_encode($dados);

?>

2 Respostas

  1. Paulo Marcelo

    Caros, a interface ficou legal.
    Justamente porque completei o meu da copa que procurei um sobre o Brasileirão 2010.
    Porém como se busca as figuras no site e/ou recebe-se figurinhas, visto que todo dia acesso e não recebo nenhuma.

    Eu e meus filhos estamos no aguardo de um retorno.

    Sem mais,
    Paulo Marcelo,
    Júnior,
    Ingrid.

    02/08/2010 às 21:56

    • Olá Paulo, neste exato momento estavamos fazendo alterações e por isto não estava ativo, agora já está ativo.
      Quero lembrar você que estamos ainda em fase de implementação e por este motivo pode ocorrer erros no sistema.

      At.
      Emerson

      02/08/2010 às 22:11

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s