Jump to content

Archived

This topic is now archived and is closed to further replies.

SinoP

Galeria Flash + PHP + MySQL - "SEM XML"

Recommended Posts

Olá pessoal.

 

Abri este tópico pois senti falta de uma galeria simples e direta. <_<

 

Estou aqui desenvolvendo um site em flash e precisava de uma galeria. Procurei por tudo e o que encontrei foram varias galerias mas todas com XML.

Como eu quero criar um script rápido e facil necessito de algo PHP + Flash, sem precisar ficar gerando o XML, assim posso enviar uma variavel por URL para o PHP e refinar a exibição de imagens por galerias, precisando criar apenas um arquivo PHP e um Flash.

Tentei gerar o XML no PHP e dar um echo, porém o flash não leu.

Agora estou tentando adaptar a galeria que funcionava com XML.

Está quase, as miniaturas carregam certinhas, o que não to conseguindo é criar uma variavel que fique gravada dentro do Movie duplicado, para que eu possa definir qual a id de cada "imagem".

 

Vou colar o código para que possam entender melhor.

 

Action do meu flash:

//include "lmc_tween.as"
// criando o objeto XML
var recebe:LoadVars = new LoadVars();
recebe.load("galeria.php");
recebe.onLoad = function() {
	// variável que retorna a altura de todos os thumbs juntos
	altura = (thumb._height*this["thumb"].length+this["thumb"].length*2);
	// criando um loop for
	for(i=1;i<5;i++){
		// duplicando o movieclip thumb
		duplicateMovieClip("thumb","thumb"+i,i+1);
		thumbs = _root.tudo_mc["thumb"+i];
		// posição de cada thumb
		thumbs._y += (thumb._height+2)*i;
		// criando uma instância da classe MovieClipLoader
		var MCL1:MovieClipLoader = new MovieClipLoader();
		// carregando um arquivo no objeto MCL1, de acordo com o primeiro nó do XML, o nó filho atual (i) do atributo thumb, movieclip alvo: thumbs.mostra
		MCL1.loadClip(this["thumb" + i],thumbs.mostra);
		thumbs.onEnterFrame = function():Void{
			// variável que checa o progresso do objeto MCL1
			progresso1 = MCL1.getProgress(this.mostra);
			// texto do campo pct_thumb: bytes carregados / bytes totais * 100 + o sinal de porcentagem
			this.pct_thumb.text = Math.ceil(progresso1.bytesLoaded / progresso1.bytesTotal * 100) + "%";
			// se os bytes carregados forem iguais ao bytes totais, deixa o campo de texto invisível, se não, ele continua visível
			progresso1.bytesLoaded == progresso1.bytesTotal ? this.pct_thumb._visible = false : this.pct_thumb._visible = true;
		}
		// variável de referência, que indica o nó atual
		thumbs.numer = i;
		// texto do campo de texto "campo"
		thumbs.campo.text = i+1;
		// retirando a mãozinha do mouse
		thumbs.btn.useHandCursor = true;
		// quando clicar no movieclip
		thumbs.btn.onRelease = function():Void{
			// outra instância da classe MovieClipLoader
			var MCL2:MovieClipLoader = new MovieClipLoader();
			// carregando o arquivo
			MCL2.loadClip(this["grande" + _parent.numer], _root.mc);
			// mesma lógica do MCL1
			this.onEnterFrame = function():Void{
				progresso2 = MCL2.getProgress(_root.mc);
				_root.pct.text = Math.round(progresso2.bytesLoaded/progresso2.bytesTotal*100) + "%";
				progresso2.bytesLoaded == progresso2.bytesTotal ? _root.pct._visible = false : _root.pct._visible = true;
			}
			// definindo o texto do campo de texto descrição, de acordo com o nó atual do atributo desc
			_root.descricao.text = _parent.numer;
		}
		// quando passar o mouse
		thumbs.btn.onRollOver = function():Void{
			// pequena mudança de contraste
			_root.tudo_mc["thumb" + _parent.numer].mostra.contrastTo(50,1);
		}
		// quando tirar o mouse
		thumbs.btn.onRollOut = function():Void{
			// voltando ao normal
			_root.tudo_mc["thumb" + _parent.numer].mostra.contrastTo(100,1);
		}
	}
}

Galeria.php - envia as variaveis ao flash:

<?php
require("conecta/banco.php");
$a = 1;
$seleciona = mysql_query("SELECT * FROM galerias");
$numero = mysql_num_rows($seleciona);
echo "numero=".$numero;
$total = mysql_num_rows($seleciona);
while ($ret = mysql_fetch_array($seleciona)){
		   $id	= $ret['id_alb'];
	   $capa  = $ret['capa'];
	   $mini  = $ret['mini'];
	   $nome  = $ret['nome'];
	   $data  = $ret['data'];
	   $local = $ret['local'];
	   echo "&nome".$a."=".$nome."&grande".$a."=".$capa."&thumb".$a."=".$mini;
	   $a++;
	   }
?>

SQL das imagens:

CREATE TABLE `galerias` (
  `id_alb` int(11) NOT NULL auto_increment,
  `capa` varchar(250) NOT NULL,
  `nome` varchar(250) NOT NULL,
  `data` varchar(250) NOT NULL,
  `local` varchar(250) NOT NULL,
  `mini` varchar(250) NOT NULL,
  PRIMARY KEY  (`id_alb`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

INSERT INTO `galerias` (`id_alb`, `capa`, `nome`, `data`, `local`, `mini`) VALUES 
(1, 'img1.jpg', 'Teste 01', '28/02/2008', 'Sinop - MT', 'thumb1.jpg'),
(2, 'img2.jpg', 'Teste 02', '25/08/2008', 'Sinop - MT', 'thumb2.jpg');

É como eu falei, as miniaturas são carregadas, porém não consigo definir a que id cada uma pertence.

Creio que o que não esta funcionando é essa parte do action do flash:

thumbs.numer = i;

Se alguém quiser baixar os arquivos pra tentar rodar.

arquivos para download

Ps: Exporte no flash e rode no localhost. (temos um arquivo .php)

Share this post


Link to post
Share on other sites

Aew galera.

Consegui arrumar.. agora ta filé.

Se alguém quiser o arquivo é só fazer o download ai em cima.

Só precisa mudar o action do flash por este aqui. (arrumadinho) http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Vlw moçada.

// criando o objeto
var recebe:LoadVars = new LoadVars();

recebe.load("galeria.php");

recebe.onLoad = function() {
	// variável que retorna a altura de todos os thumbs juntos
	altura = (thumb._height*this["thumb"].length+this["thumb"].length*2);
	// criando um loop for
	for(i=1;i<=recebe["numero"];i++){
		trace(i);
		// duplicando o movieclip thumb
		duplicateMovieClip("thumb","thumb"+i,i+1);
		thumbs = _root.tudo_mc["thumb"+i];
		thumbs.num = i;
		// posição de cada thumb
		thumbs._y += (thumb._height+2)*i;
		// criando uma instância da classe MovieClipLoader
		var MCL1:MovieClipLoader = new MovieClipLoader();
		// carregando um arquivo no objeto MCL1, de acordo com o primeiro nó do XML, o nó filho atual (i) do atributo thumb, movieclip alvo: thumbs.mostra
		MCL1.loadClip(this["thumb" + i],thumbs.mostra);
		thumbs.onEnterFrame = function():Void{
			// variável que checa o progresso do objeto MCL1
			progresso1 = MCL1.getProgress(this.mostra);
			// texto do campo pct_thumb: bytes carregados / bytes totais * 100 + o sinal de porcentagem
			this.pct_thumb.text = Math.ceil(progresso1.bytesLoaded / progresso1.bytesTotal * 100) + "%";
			// se os bytes carregados forem iguais ao bytes totais, deixa o campo de texto invisível, se não, ele continua visível
			progresso1.bytesLoaded == progresso1.bytesTotal ? this.pct_thumb._visible = false : this.pct_thumb._visible = true;
		}
		// variável de referência, que indica o id atual
		thumbs.num = i;
		// quando clicar no movieclip
		thumbs.btn.onRelease = function():Void{
			// outra instância da classe MovieClipLoader
			var MCL2:MovieClipLoader = new MovieClipLoader();
			// carregando o arquivo
			MCL2.loadClip(recebe["capa"+this._parent.num],_root.mc);
			// mesma lógica do MCL1
			this.onEnterFrame = function():Void{
				progresso2 = MCL2.getProgress(_root.mc);
				_root.pct.text = Math.round(progresso2.bytesLoaded/progresso2.bytesTotal*100) + "%";
				progresso2.bytesLoaded == progresso2.bytesTotal ? _root.pct._visible = false : _root.pct._visible = true;
			}
			// definindo o texto do campo de texto descrição, de acordo com o nó atual do atributo desc
			_root.descricao.text = recebe["capa"+this._parent.num];
		}
		// quando passar o mouse
		thumbs.btn.onRollOver = function():Void{
			// pequena mudança de contraste
			_root.tudo_mc["thumb"+  _parent.num].mostra._alpha(50,1);
		}
		// quando tirar o mouse
		thumbs.btn.onRollOut = function():Void{
			// voltando ao normal
			_root.tudo_mc["thumb"+ _parent.num].mostra._alpha(0,1);
		}
	}
}

Share this post


Link to post
Share on other sites

Viva SinoP,

 

Não estou conseguindo colocar a galeria a funcionar correctamente, alterei o actionscript no flash mas continua a carregar só as miniaturas :S

 

Dá para voce colocar os ficheiros finais para eu poder testar?

 

Abraço!

Share this post


Link to post
Share on other sites

Viva Grande SinoP,

 

O ficheiro fotos.fla esta funcionando perfeitamente, já o ficheiro galeria_fotos.fla continuo a não conseguir por a funcionar... :S

 

você se importa de postar as duas tabelas de sql para eu poder ver.

 

Grande abraço!

Share this post


Link to post
Share on other sites

Olá J6.

Desculpe mais uma vez pela minha ignorância, esqueci de compactar alguns arquivos.

Estou colocando os arquivos todos para download, e junto estta indo um readme para você seguir os passos da instalação.

Obrigado.

 

Galeria Completa

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.