Montei uma galeria de fotos utilizando alguns códigos que que peguei na net e algumas outras coias que fui modificando, porém estou com um problema.
A galeria de fotos utiliza XML para carregar as fotos, faz a distribuição de páginas, tudo ok. Porém as setas que coloquei para navegar entre as fotos não estão utiliznado o mesmo new XML. Não consegui que utilizasse a mesma informação. Conclusão: quando navego na galeria pelas miniaturas as fotos mudam normalmente, porém quando uso as setas elas usam outra ordem. Isso está acontecendo pois não consegui utilizar o mesmo new XML que utilizo nas miniaturas.
Segue o código:
CÓDIGO
//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;
fotos.push(novaimg);//inserindo objeto no array
}
//chamando função q faz a galeria...
criaGaleria();
}
};
//load no arquivo .xml
loadDados.load("Imagens/Galeria/Buffet/fotos.xml");
}
//função que cria a galeria
function criaGaleria():Void {
mvlIMG.loadClip(this.img_g,img_grande);
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() {
import mx.transitions.*;
import mx.transitions.easing.*;
new Tween(img_grande, "_alpha", Back.easeOut, 0, 100, 2, true);
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, 11, 11, 65, 60, 4, 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;
//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]._alpha = 50;
_root.miniaturas["fp_"+info.iObj].onRollOver = function() {
this._alpha = 100;
};
_root.miniaturas["fp_"+info.iObj].onRollOut = function() {
this._alpha = 50;
};
_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() {
_root.Borda.swapDepths(2001);
_root.Borda._x = (_root.miniaturas["fp_"+info.iObj]._x+42);
_root.Borda._y = (_root.miniaturas["fp_"+info.iObj]._y+297.3);
//usando o obj mvlIMG, para carregar a imagem grande...
mvlIMG.loadClip(this.img_g,img_grande);
};
};
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);
//Função dos botoes de avança e voltar
var i:Number = 0;
/////////////////////////////////////////////////////
var nossoXML:XML = new XML();
nossoXML.load("Imagens/Galeria/Buffet/fotos.xml");
nossoXML.ignoreWhite = true;
System.useCodepage = true;
/////////////////////////////////////////////////////
nossoXML.onLoad = function() {
carrega();
};
/////////////////////////////////////////////////////
function carrega() {
import mx.transitions.*;
import mx.transitions.easing.*;
new Tween(img_grande, "_alpha", Back.easeOut, 0, 100, 2, true);
img_grande.loadMovie(nossoXML.firstChild.childNodes[i-3].attributes.fg);
}
/////////////////////////////////////////////////////
voltar.onRelease = function() {
if (i == 0) {
i = 26;
} else {
i--;
}
carrega();
};
/////////////////////////////////////////////////////
avancar.onRelease = function() {
if (i == 26) {
i = 0;
} else {
i++;
}
carrega();
};
//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_" add i];
if (mcPgAtual != this) {
mcPgAtual.gotoAndStop(1);
_root.Borda._x = -42;
_root.Borda._y = -306.8;
}
//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_" add 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();
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;
fotos.push(novaimg);//inserindo objeto no array
}
//chamando função q faz a galeria...
criaGaleria();
}
};
//load no arquivo .xml
loadDados.load("Imagens/Galeria/Buffet/fotos.xml");
}
//função que cria a galeria
function criaGaleria():Void {
mvlIMG.loadClip(this.img_g,img_grande);
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() {
import mx.transitions.*;
import mx.transitions.easing.*;
new Tween(img_grande, "_alpha", Back.easeOut, 0, 100, 2, true);
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, 11, 11, 65, 60, 4, 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;
//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]._alpha = 50;
_root.miniaturas["fp_"+info.iObj].onRollOver = function() {
this._alpha = 100;
};
_root.miniaturas["fp_"+info.iObj].onRollOut = function() {
this._alpha = 50;
};
_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() {
_root.Borda.swapDepths(2001);
_root.Borda._x = (_root.miniaturas["fp_"+info.iObj]._x+42);
_root.Borda._y = (_root.miniaturas["fp_"+info.iObj]._y+297.3);
//usando o obj mvlIMG, para carregar a imagem grande...
mvlIMG.loadClip(this.img_g,img_grande);
};
};
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);
//Função dos botoes de avança e voltar
var i:Number = 0;
/////////////////////////////////////////////////////
var nossoXML:XML = new XML();
nossoXML.load("Imagens/Galeria/Buffet/fotos.xml");
nossoXML.ignoreWhite = true;
System.useCodepage = true;
/////////////////////////////////////////////////////
nossoXML.onLoad = function() {
carrega();
};
/////////////////////////////////////////////////////
function carrega() {
import mx.transitions.*;
import mx.transitions.easing.*;
new Tween(img_grande, "_alpha", Back.easeOut, 0, 100, 2, true);
img_grande.loadMovie(nossoXML.firstChild.childNodes[i-3].attributes.fg);
}
/////////////////////////////////////////////////////
voltar.onRelease = function() {
if (i == 0) {
i = 26;
} else {
i--;
}
carrega();
};
/////////////////////////////////////////////////////
avancar.onRelease = function() {
if (i == 26) {
i = 0;
} else {
i++;
}
carrega();
};
//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_" add i];
if (mcPgAtual != this) {
mcPgAtual.gotoAndStop(1);
_root.Borda._x = -42;
_root.Borda._y = -306.8;
}
//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_" add 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();

Help














