post original em :http://forum.imasters.uol.com.br/index.php?/topic/326259-tutorial-slideshow-dinamico/
berseck.wordpress.com
Bom galera, eu vo aqui mostrar como que se faz um slideshow dinâmico.
Aqui como deve ficar no final
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