Ir para conteúdo

POWERED BY:

Arquivado

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

calasso

Galeria com xml dupla

Recommended Posts

Bom dia galera,

Vê se alguém pode me ajudar...

Na galeria com xml que estou montando tem tumbs e img grande, só que na galeria o o mesmo tumb tem q chamar duas imgs grandes, até deu tudo certo, só que na grande tem q ser imgns diferentes...(tipo frente e verso...)

 

da uma olhada no modelo e como está....

 

galeria -www.calasso.com.br/galeria/galeria.swf

 

Esse é o meu codigo...

 

//variaveis da sequencia...
var fotos:Array = new Array;
//função de inicio do projeto...
function init():Void {
	//carregando xml...
	var loadDados:XML = new XML();
	loadDados.ignoreWhite = true;
	loadDados.onLoad = function(sucess) {
		if (sucess) {
			//primeiro nó: fotos;
			var f = this.firstChild.childNodes;
			//listando conteúdo do nó e inserindo no array de fotos
			for (var i = 0; i<f.length; i++) {
				var novaimg:Object = new Object(); //criando o objeto de cada foto
				novaimg.img_p = f[i].attributes.fp;
				novaimg.img_g = f[i].attributes.fg;
				novaimg.img_g = f[i].attributes.fgg;
				fotos.push(novaimg); //inserindo objeto no array
			}
			//chamando função q faz a galeria...
			criaGaleria();
		}
	};
	//load no arquivo .xml
	loadDados.load("fotos.xml");
}
//função que cria a galeria
function criaGaleria():Void {
	car._visible = 0;
	//preloader de imagens grande, usando MovieClipLoader...
	//fica livre para usar como quiser...
	var mvlIMG:MovieClipLoader = new MovieClipLoader();
	var mvlOBJ:Object = new Object();
	mvlOBJ.onLoadStart = function(){
		car._visible = 1;
	}
	mvlOBJ.onLoadProgress = function(obj, bl, bt){
		var p = (Math.round(bl/bt) * 100) //porcentagem carregada da imagem
		car.p.text = "Carregando... " + p + "%";
	}
	mvlOBJ.onLoadComplete = function(){
		car._visible = 0;
	}
	mvlIMG.addListener(mvlOBJ);

	//
	//criando sistema de galeria(quantidade de fotos, fotos por pagina, colunas, altura miniatura, largura, espacamento x, e y);
	_global.galeria1 = new Distribute(fotos.length, 8, 2, 100, 79, 7, 3);
	//
	var objGal1:Object = new Object();
	objGal1.onDistStart = function() {
		//ação de inicio da distribuição das fotos...
		//verifica se o mc já está no palco, caso esteja, remove para nova página...
		if(_root.miniaturas){
			//removendo miniaturas anteriores na troca de pagina...
			_root.miniaturas.removeMovieClip();
		}
		//duplicando o mc conteiner q vai conter as miniaturas, para um novo que poder ser removido...
		_root.conteinerInicial.duplicateMovieClip("miniaturas", 1);
		//definindo onde o mcConteiner deve aparecer...
		miniaturas._x = conteinerInicial._x; // _x
		miniaturas._y = conteinerInicial._y; // _y
		//escondendo...
		miniaturas._visible = 0;
	};
	//
	objGal1.onDistUpdate = function(info:Object) {
		//puxando da bliblioteca o mc com linkage miniatura, e ja posicionando de arquivo com o _x e _y passados pelo var info...
		_root.miniaturas.attachMovie("miniatura", "fp_"+info.iObj, galeria1.nDepth(_root.miniaturas), {_x:info.x, _y:info.y});
		//informando ou passando, para miniatura, qual é sua foto grande...
		_root.miniaturas["fp_"+info.iObj].img_g = fotos[info.index].img_g;
		//_root.miniaturas["fp_"+info.iObj].img_gg = fotos[info.index].img_gg;
		//criando o movie clip alvo para receber a img pequena, dentro do mc Conteiner...
		_root.miniaturas["fp_"+info.iObj].createEmptyMovieClip("img_p", 1);
		//carregando thumb via loadMovie...
		_root.miniaturas["fp_"+info.iObj].img_p.loadMovie(fotos[info.index].img_p);
		//definindo ação de clique na miniatura, para ampliar...
		_root.miniaturas["fp_"+info.iObj].onRelease = function(){
			//usando o obj mvlIMG, para carregar a imagem grande...
			mvlIMG.loadClip(this.img_g, img_grande);
			mvlIMG.loadClip(this.img_g, img_grande2);
		}
	};
	objGal1.onDistEnd = function(info:Object) {
		//ação de distribuição completa, exibindo mc Conteiner, chamado de miniaturas...
		miniaturas._visible = 1;
	};
	//definindo ao objeto galeria1, os objetos e eventos que deve utilizar...
	galeria1.addEventListener("onDistStart", objGal1);
	galeria1.addEventListener("onDistUpdate", objGal1);
	galeria1.addEventListener("onDistEnd", objGal1);
	//
	//montando paginação, pegase o nº de paginas e faz o paginador...
	//função responsável pelo click dos bts da paginação...
	function setPg(obj){
		//restaurando todos bts, para o primeiro frame...
		for (i=0; i<galeria1.nPages; i++) {
			var mcPgAtual = this._parent["mcPg_" + i];
			if(mcPgAtual != this) mcPgAtual.gotoAndStop(1); //todos voltam menos o atual...
		}
		//definindo o frame q deve mostrar...
		this.lastFrame = 3;
		//mostrando página solicitada...
		var iAtual:Number = int(this.pg.text);
		galeria1.showPage(iAtual);
	}
	for (i=0; i<galeria1.nPages; i++) {
		//ataxando ao mc vazio, paginacao, os bts de página...
		var mcPgAtual = paginacao.attachMovie("mcPg", "mcPg_" + i, i);
		mcPgAtual._x = (i*(mcPgAtual._width+3)); //posicionando bt no mc...
		mcPgAtual.pg.text = (i+1); //setando no bt, a pg dele...
		//definindo eventos e ações paga o bt da página...
		mcPgAtual.onRollOver = function(){
			//pega o frame atual e armazena, caso o bt seja o bt de página clicada...
			this.lastFrame = this._currentframe;
			//ao passar porcima acende
			this.gotoAndStop(2);
		}
		mcPgAtual.onRollOut = function(){
			this.gotoAndStop(this.lastFrame);
		}
		mcPgAtual.onRelease = setPg;
	}
	//
	//mostrando pagina 1 e setando o botão de pg 1...
	paginacao["mcPg_0"].gotoAndStop(3);
	galeria1.showPage(1);
}
//
//iniciando por fim, a galeria...
init();

Assim está meu xml

 

<fotos>
  <foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg" fgg="imgs/foto2g.jpg"/> 
</fotos>

Grande Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara olhei por cima e vou dar um palpite...

Altere o trecho por este:

//listando conteúdo do nó e inserindo no array de fotos
for (var i = 0; i<f.length; i++) {
	var novaimg:Object = new Object();
	//criando o objeto de cada foto
	novaimg.img_p = f[i].attributes.fp;
	novaimg.img_g = f[i].attributes.fg;
	novaimg.img_gg = f[i].attributes.fgg;
	fotos.push(novaimg);
	//inserindo objeto no array
}

Depois na função abaixo, também altere por este:

objGal1.onDistUpdate = function(info:Object) {
	//puxando da bliblioteca o mc com linkage miniatura, e ja posicionando de arquivo com o _x e _y passados pelo var info...
	_root.miniaturas.attachMovie("miniatura", "fp_"+info.iObj, galeria1.nDepth(_root.miniaturas), {_x:info.x, _y:info.y});
	//informando ou passando, para miniatura, qual é sua foto grande...
	_root.miniaturas["fp_"+info.iObj].img_g = fotos[info.index].img_g;
	_root.miniaturas["fp_"+info.iObj].img_gg = fotos[info.index].img_gg;
	//criando o movie clip alvo para receber a img pequena, dentro do mc Conteiner...
	_root.miniaturas["fp_"+info.iObj].createEmptyMovieClip("img_p", 1);
	//carregando thumb via loadMovie...
	_root.miniaturas["fp_"+info.iObj].img_p.loadMovie(fotos[info.index].img_p);
	//definindo ação de clique na miniatura, para ampliar...
	_root.miniaturas["fp_"+info.iObj].onRelease = function() {
		//usando o obj mvlIMG, para carregar a imagem grande...
		mvlIMG.loadClip(this.img_g, img_grande);
		mvlIMG.loadClip(this.img_gg, img_grande2);
	};
};

 

E testa ae..., pois é fácil perceber os trechos que alterei.

 

Att.

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.