Galeria Flash + PHP + MySQL - "SEM XML"
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.
Ps: Exporte no flash e rode no localhost. (temos um arquivo .php)
Discussão (8)
Carregando comentários...