Ir para conteúdo

POWERED BY:

Arquivado

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

Uriel Juliatti

Galeria de Fotos Dinâmica em Flash

Recommended Posts

Boa tarde.

 

Estou tendo uma ENORME dificuldade em fazer uma galeria de imagens no flash. O cliente necessita de uma galeria dinâmica, ou seja, tem que ter um XML comunicando com o Flash onde o próprio usuário possa atualizar a galeria sem muito segredo.

 

O problema é que essa galeria necessita de um efeito "Lightbox" em Flash e não em JavaScript e afins. Ele tem que abrir dentro do filme do flash e REDIMENSIONAR de acordo com o tamanho de cada imagem.

 

Alguém pode me ajudar?!

 

Já vi vários tutoriais, mas todos eles não ajudaram muito não...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não é em flash mas acho que pode ser util: http://www.e2interactive.com/e2_photo_gallery/

 

da uma olhada na exemplo que tem no site

 

E ela já vem com um painel administrativo para o cara atualIzar a galeria ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse aqui é o código do palco que estou fazendo:

 

Vejam..

 

 

import mx.transitions.Tween;
import mx.transitions.easing.*;
/* Variável para saber se carregou */
var carregado:Boolean = false;
/* Criamos uma variável para o MovieClipLoader para as fotos maiores */
var meuMCL:MovieClipLoader = new MovieClipLoader();
/* Outra variável para o MovieClipLoader esse é para as fotos menores */
var pequenoMCL:MovieClipLoader = new MovieClipLoader();
/* Criamos um Listener para o MovieClipLoader */
var meuListener:Object = new Object();
/* Outro Listener */
var pequenoListener:Object = new Object();
/* Criamos uma variável para o XML */
var dadosXML:XML = new XML();
/* Ignoramos os espaços em branco */
dadosXML.ignoreWhite = true;
/* Carregamos o XML */
dadosXML.load("imagens.xml");
/* Quando o XML for carregado */
dadosXML.onLoad = function(ok) {
	/* Se não teve erro */
	if (ok) {
		/* Dizemos qual é o primeiro Nó */
		xmlNode = this.firstChild;
		/* Criamos uma variável para o total de itens no XML */
		total = xmlNode.childNodes.length;
		/* Chamamos a função montaPequeno() */
		montaPequeno();
		/* Chamamos a função carregaImagem chamando a primeira imagem */
		carregaImagem(0,0);
	} else {
		/* Exibimos uma mensagem de erro caso não carregue o XML */
		mensagem.text = "Erro ao Carregar o arquivo XML";
	}
};
/* Função monta pequeno */
function montaPequeno() {
	/* Variável para posicionar o MovieClip */
	var inicio = 0;
	/* Criamos um for para cada item do XML */
	for (var i = 0; i<total; i++) {
		/* Chamamos o MovieClip pequeno */
		var mc:MovieClip = recebe.attachMovie("pequeno", "pequeno"+i, recebe.getNextHighestDepth());
		/* Pocisionamos ele */
		mc._x = inicio*mc._width+inicio*10;
		/* Incrementamos inicio */
		inicio++;
		/* Carregamos a imagem pequena */
		pequenoMCL.loadClip(xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue,mc.alvo);
		/* Deixamos o MovieClip barra com _yscale igual a 0 */
		mc.barra._yscale = 0;
		/* Pegamos a imagem */
		mc.imagem = i;
		/* Pegamos a legenda */
		mc.legenda = i;
		/* Ao pressionar do da Imagem Pequena */
		mc.onPress = function() {
			/* Se a variável carregado for igual a true */
			if (carregado == true) {
				/* Carregamos a Imagem selecionada */
				carregaImagem(this.imagem,this.legenda);
				/* Carregado igual a falso */
				carregado = false;
				/* Apagamos o texto */
				texto.text = "";
			}
		};
	}
	/* Verificamos se o ScrollBar é menor que o MovieClip recebe */
	if (recebe._width<=scrollBar._width) {
		scrollBar.unloadMovie();
	}
}
/* Usamos o Listener para saber o progresso do Carregamento */
pequenoListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
	/* Criamos uma variável para saber o quanto carregou */
	var carregados:Number = Math.round(loadedBytes/totalBytes*100);
	/* Deixamos o MovieClip barra com _yscale igual a variável carregado */
	target_mc._parent.barra._yscale = carregados;
};
/* Função para carregar a Imagem grande */
function carregaImagem(arquivo, txt) {
	/* Deixamos o MovieClip preloader com _xscale igual a zero */
	preloader._xscale = 0;
	/* Deixamos o MovieClip preloader visível */
	preloader._visible = true;
	/* Descarregamos qualquer conteúdo que esteja no MovieClip holder */
	holder.unloadMovie();
	/* Deixamos o MovieClip holder com alpha igual a zero */
	holder._alpha = 0;
	holder.loadMovie("holder.swf",holder);
	/* Carregamos a imagem maior selecionada */
	meuMCL.loadClip(xmlNode.childNodes[arquivo].childNodes[0].firstChild.nodeValue,holder);
	/* Usamos o Listener para saber o progresso do carregamento */
	meuListener.onLoadProgress = function(alvo:Object, bLoad:Number, bTotal:Number) {
		/* Criamos uma variável para saber quanto carregou */
		var porcentagem:Number = Math.round(bLoad/bTotal*100);
		/* Mostramos o quanto carregou */
		porcento.text = porcentagem+"%";
		/* Deixamos o MovieClip preloader com o mesmo _xscale do carregameto */
		preloader._xscale = porcentagem;
	};
	/* Quando terminar de carregar */
	meuListener.onLoadInit = function() {
		/* Para usar a Classe Tween temos que criar variáveis */
		/* Aqui iremos aumentar o MovieClip borda para o mesmo tamanho do MovieClip holder mais 16
		para poder fazer uma borda */
		var tww:Tween = new Tween(borda, "_width", Back.easeOut, borda._width, holder._width+16, 1, true);
		/* Aqui iremos aumentar o MovieClip borda para o mesmo tamanho do MovieClip holder mais 16
		para poder fazer uma borda */
		var twh:Tween = new Tween(borda, "_height", Back.easeOut, borda._height, holder._height+16, 1, true);
		/* Aqui movemos o MovieClip holder */
		var twhx:Tween = new Tween(holder, "_x", Back.easeOut, holder._x, borda._x-holder._width/2, 1, true);
		/* Aqui movemos o MovieClip holder */
		var twhx:Tween = new Tween(holder, "_y", Back.easeOut, holder._y, borda._y-holder._height/2, 1, true);
		/* Movemos o MovieClip mascara */
		var twma:Tween = new Tween(mascara, "_y", Back.easeOut, mascara._y, (borda._y+holder._height/2)+16, 1, true);
		/* Movemos o MovieClip recebe */
		var twr:Tween = new Tween(recebe, "_y", Back.easeOut, recebe._y, (borda._y+holder._height/2)+16, 1, true);
		/* Movemos o ScrollBar */
		var twsP:Tween = new Tween(scrollBar, "_y", Back.easeOut, scrollBar._y, (borda._y+holder._height/2)+recebe._height+22, 1, true);
		/* Movemos o campo de texto */
		var twtxt:Tween = new Tween(texto, "_y", Back.easeOut, texto._y, (borda._y+holder._height/2)+recebe._height+47, 1, true);
		/* Mostramos o texto */
		texto.text = xmlNode.childNodes[txt].childNodes[2].firstChild.nodeValue;
		/* Quando a variavel twhx acabar de se mover */
		twhx.onMotionFinished = function() {
			/* Deixamos o MovieClip preloader invisivel */
			preloader._visible = false;
			/* Apagamos o texto do campo de texto porcento */
			porcento.text = "";
			/* Aqui deixamos o MovieClip holder ficar com alpha igual a 100 */
			var twha:Tween = new Tween(holder, "_alpha", Regular.easeOut, 0, 100, 0.6, true);
			/* Quando a variavel twha acabar */
			twha.onMotionFinished = function() {
				/* Deixamos a variável carregado igual a true */
				carregado = true;
			};
		};
	};
}
/* Adicionamos um Listener ao MovieClipLoader */
meuMCL.addListener(meuListener);
/* Adicionamos um Listener ao MovieClipLoader */
pequenoMCL.addListener(pequenoListener);

O problema é que não consigo fazer a foto ter um drag para fechála e nao consigo fazer que a foto só abra quando clicar em alguma foto na galeria.

 

Outro problema é que a máscara está cortando pela metade o MC da galeria..

 

E tenho mais outro é que a galeria expande e encurta de acordo com o tamanho da foto. Há alguma forma de solucionar isso?!

 

Alguem me ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

...Eu posso ajuda-lo a pegar um pronto.

no www.flashmo.com você encontra algumas galerias como essa que você está fazendo,

essas galerias são dinamicas e bonitas no quisito de beleza e desing.

 

http://www.flashmo.com/flash_templates/fla..._129_circle.zip - esse ai é o mais recente que eu achei, ele usa flash actionscript 3.0, atualmente ele é pouco explorad, mas isso pode ser uma excelente novidade para clientes que gostam de surpresas.

 

Outras da categoria

 

http://www.flashmo.com/preview/flashmo_122_3d_curve_gallery

http://www.flashmo.com/preview/flashmo_098_3d_curve_wall

http://www.flashmo.com/preview/flashmo_096_3d_cylinder_box

http://www.flashmo.com/preview/flashmo_094...al_carousel_xml

http://www.flashmo.com/preview/flashmo_095_3d_thumbnail_box

 

..Bom, depois disso, voce pode retirar alguns scripts desses arquivos e ver algumas curiosidades dos scripts desses modelos. Espero que goste, Boa Noite, Alexandre

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.