• RSS
  • Facebook
  • Twitter
Comments

  • Flash Developer
  •   Autor : berseck

    post original em :http://forum.imasters.uol.com.br/index.php?/topic/326259-tutorial-slideshow-dinamico/

    Esse tutorial foi postado em meu blog:
    berseck.wordpress.com

    Bom galera, eu vo aqui mostrar como que se faz um slideshow dinâmico.

    Aqui como deve ficar no final :)
    Imagem


    Eu criei esse slideshow devido a necessidade que eu tive...

    E então fiz ele ficar dinâmico para poder adicionar quantas imagens você quiser

    Então vamos ao código!

    //importo as funções necessárias
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    import flash.display.Stage;
    Stage.scaleMode = "noScale";
    //Crio o loader
    var mcl:MovieClipLoader = new MovieClipLoader();
    //Crio os clips a serem carregados
    var alvo:MovieClip = _root.createEmptyMovieClip("alvo", _root.getNextHighestDepth());
    var alvo2:MovieClip = _root.createEmptyMovieClip("alvo2", _root.getNextHighestDepth());
    //Pego o tamanho do palco
    var StageW:Number = Stage.width;
    var StageH:Number = Stage.height;
    //Digo a posição inicial das fotos no palco - centralizando-as
    alvo._x = StageW/2;
    alvo._y = StageH/2;
    alvo2._x = StageW/2;
    alvo2._y = StageH/2;
    //Pego os valores de altura, largura, x e y dos clips
    var alvoX:Number = alvo._x;
    var alvoY:Number = alvo._y;
    var alvoWidth:Number = alvo._width;
    var alvoHeight:Number = alvo._height;
    var alvo2X:Number = alvo2._x;
    var alvo2Y:Number = alvo2._y;
    var alvo2Width:Number = alvo2._width;
    var alvo2Height:Number = alvo2._height;
    //Crio minha Array
    var dados:Array = new Array;
    //Crio meu contador
    var atual:Number = new Number;
    //Função que carrega as fotos do arquivo
    var carrega:LoadVars = new LoadVars();
    carrega.load('slide.html');
    carrega.onload = function (success:Boolean){
            if(success){
                    fotos = carrega.fotos;
                    var dados = fotos.split(",");
                    criaarray = function(){
                            return(dados);
                    }
                    carregafilme(dados);
            }else{
                    trace("Falha ao carregar os dados");
            }
    };
    //Função que carrega a primeira seqüencia de fotos
    function carregafilme(dados){
            imagem1(dados, atual);
            timer = function(){
                    loopeterno();
                    clearInterval(tempo);
            }
            tempo = setInterval(timer, 3000);
    };
    // Função para avançar 1 foto
    intervalo = function(){
            dados = criaarray();
            i = incrementa(dados);
            imagem2(dados, i);
            var anima1:Tween = new Tween(alvo, "_alpha", Linear.easeIn, 100, 0, 3, true);
            var anima2:Tween = new Tween(alvo2, "_alpha", Linear.easeIn, 0, 100, 3, true);
            anima2.onMotionfinished = function(){
                    imagem1(dados, i);      
            }
    };
    // Função para voltar 1 foto
    volta = function(){
            dados = criaarray();
            i = decrementa(dados);
            imagem1(dados, i);
            var anima1:Tween = new Tween(alvo, "_alpha", Linear.easeIn, 0, 100, 3, true);
            var anima2:Tween = new Tween(alvo2, "_alpha", Linear.easeIn, 100, 0, 3, true);
            anima2.onMotionfinished = function(){
                    imagem2(dados, i);      
            }
    };
    // Função que carrega o primeiro clip
    function imagem1(a, i){
            num = a[i];
            mcl.loadClip(a[i], alvo);
            mcl.addListener(this);
            return(num);
    };
    // Função que carrega o segundo clip
    function imagem2(a, i){
            num = a[i];
            mcl.loadClip(a[i], alvo2);
            mcl.addListener(this);
            return(num);
    };
    // Função para aumentar 1 no numero de fotos
    function incrementa(a){
            atual++
            if(atual > (a.length - 1)){
                    atual = 0;
                    return(atual);
            }
            return(atual);
    };
    // Função para diminuir 1 no numero de fotos
    function decrementa(a){
            atual--;
            if(atual < 0){
                    atual = (a.length - 1);
                    trace(atual);
                    return(atual);
            }
            return(atual);
    };
    //Chamo um loop eterno
    loopeterno = function(){
            intervalo();
    };
    // Ao carregar
    function onloadInit(alvo) {
            redimensionar(alvo);
            alvo._x = alvoX + (alvoWidth/2) - (alvo._width/2);
            alvo._y = alvoY + (alvoHeight/2) - (alvo._height/2);
    };
    // Redimensiona
    function redimensionar(alvo){
            alvo._xscale = 100;
            alvo._yscale = 100;
            if(alvo._width > alvo._height and alvo._width > StageW){
                    alvo._xscale = ((StageW)*(100))/alvo._width;
                    alvo._yscale = alvo._xscale;
            }
            else if(alvo._height > alvo._width and alvo._height > StageH){
                    alvo._yscale = ((StageH)*(100))/alvo._height;
                    alvo._xscale = alvo._yscale;
            } else {
                    alvo._xscale = 100;
                    alvo._yscale = 100;
            }
    };
    
    mcl.addListener(this);
    looptimer = setInterval(loopeterno, 9000);

    Código todo comentado :)

    Espero que vocês gostem

    Qualquer coisa é só falar

    Para baixar clique aqui

    Abraços Postado por Fernando Schimit - Fox Creative

    Categories:

    Leave a Reply