Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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)

Compartilhar este post


Link para o post
Compartilhar em outros 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);
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros 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!

Compartilhar este post


Link para o post
Compartilhar em outros 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!

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.