Ir para conteúdo
Fórum Script Brasil
  • 0

ajuda com uma galeria de imagens


ILA

Pergunta

Salve galera do Fórum.

Pessoal estou com um problema que para muitos pode ser fácil de ser resolvido, mas para mim esta me tirando o sono.

Galera é o seguinte estou fazendo um site todo em flash e estou utilizando um código xml bem conhecido por todos para fazer uma galeria de imagens postada por “Lucas Ferreira”.

Só que não tenho muito a manha de xml e na hora de relacionar o flash com o xml estou me quebrando. Estou inserindo esta galeria no frame 125 e o código original esta no frame 1. Por favor, me ajudem. Grande abraço.

Xml:

<?xml version="1.0" encoding="UTF-8"?>
<fotos>
  <foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg"/>
  <foto fp="imgs/foto2p.jpg" fg="imgs/foto2g.jpg"/> 
  <foto fp="imgs/foto3p.jpg" fg="imgs/foto3g.jpg"/> 
  <foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg"/> 
  <foto fp="imgs/foto2p.jpg" fg="imgs/foto2g.jpg"/> 
  <foto fp="imgs/foto3p.jpg" fg="imgs/foto3g.jpg"/> 
  <foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg"/> 
  <foto fp="imgs/foto2p.jpg" fg="imgs/foto2g.jpg"/> 
  <foto fp="imgs/foto3p.jpg" fg="imgs/foto3g.jpg"/> 
  <foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg"/>   
</fotos>
flash
//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("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, 80, 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 já 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].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);
        }
    };
    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_" add 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_" 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();

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...