Janelee 0 Denunciar post Postado Agosto 31, 2009 Olá colegas. Estou com o seguinte problema. Quero importar um arquivo xml, em que haja uma transição de fotos automatica com efeito alpha no movieclip. Gostaria da ajuda de vocês para completar meu código. System.useCodepage = true; var xml:XML = new XML(); var fotos:Array = new Array(); var inic = 0; var cont = -1; var mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); mcl.addListener(listener); xml.load("capa.xml"); xml.ignoreWhite = true; xml.onLoad = function(ok) { if(ok){ var cn = xml.firstChild.childNodes for(var i:Number = 0; i < cn.length; i++){ fotos[i] = cn[i].firstChild.childNodes; cont++; } } else { trace("Erro no XML"); } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = alvo._yscale = 100; }No código acima ele importa o xml e deixa do tamanho do stage. Como posso fazer pras proximas fotos irem passando com um efeito alpha? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Agosto 31, 2009 Bom uma vez que você já pegou as fotos com fotos Então basta você criar um setInterval() Que vá mudando o i quando chegar ao maximo zerar o i novamente... E colocar um tween de alpha nele... seja com onEnterFrame... para esse efeito... ou com a classe Tween() ou Tweener() Qualquer classe que faça esse tipo de transição. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Agosto 31, 2009 Segundo minha pesquisa, o setInterval deve ser usado com uma função function pausa() { trace("aqui coloco minha mensagem"); } setInterval(pausa, 2000); porém, nao consegui utilizar no meu código. poderiam me auxiliar no uso? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 1, 2009 Assim jane: var inic = 0; function pausa() { alvo.loadMovie(fotos[i]);//Alvo é o movieclip que vai carregar as fotos if(inic >= fotos.length){ inic = 0 }else{ inic++; } } setInterval(pausa, 2000);// esses 2000 são 2 segundos que é o tempo que ele vai levar para carregar de 1 foto para outra Algo mais ou menos assim Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Setembro 1, 2009 inclui esta função e retornei la pra cima com um return para carregar a imagem. porem, ao abrir a animação, não aparece nada e só 2 segundos depois a aparece a primeira imagem. e depois da ultima imagem da um underfined. Eis o atual código. System.useCodepage = true; var xml:XML = new XML(); var fotos:Array = new Array(); var inic = 0; var cont = -1; var mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); mcl.addListener(listener); xml.load("administracao/capa.xml"); xml.ignoreWhite = true; xml.onLoad = function(ok) { if(ok){ var cn = xml.firstChild.childNodes for(var i:Number = 0; i < cn.length; i++){ fotos[i] = cn[i].firstChild.childNodes; cont++; } } else { trace("Erro no XML"); } return (pausa); //mcl.loadClip(fotos[inic].toString(), alvo); //alvo._xscale = alvo._yscale = 100; } function pausa() { alvo.loadMovie(fotos[inic]);//Alvo é o movieclip que vai carregar as fotos alvo._xscale = alvo._yscale = 100; if(inic >= fotos.length){ inic = 0 }else{ inic++; } } setInterval(pausa, 2000); // 2 segundos por foto da função Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 1, 2009 Apos o for completar antes de ir para o else :) Inicie a pausa escreveno pausa() Que ele vai iniciar sozinho... E desculpe como era só um exemplo :P não fiz perfeitamente function pausa() { if(inic >= fotos.length){ inic = 0 } alvo.loadMovie(fotos[inic]);//Alvo é o movieclip que vai carregar as fotos alvo._xscale = alvo._yscale = 100; inic++; } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Setembro 2, 2009 bom, fiz tudo certinho, coloquei no ar, mas as imagens nao carregam www.juliernascimento.com.br/capa.swf este é o xml: <?xml version="1.0" encoding="UTF-8" ?> - <slideshow> - <image> <filename>administracao/fotos/IMG_1508.jpg</filename> </image> - <image> <filename>administracao/fotos/IMG_1573.jpg</filename> </image> - <image> <filename>administracao/fotos/IMG_1586.jpg</filename> </image> - <image> <filename>administracao/fotos/IMG_1617.jpg</filename> </image> - <image> <filename>administracao/fotos/capa_dvd_hdc.jpg</filename> </image> </slideshow> e este o .fla import mx.transitions.Tween; import mx.transitions.easing.*; System.useCodepage = true; var inic = 0; var xml: XML = new XML(); var listener: Object = new Object(); var fotos:Array = new Array(); var mcl:MovieClipLoader = new MovieClipLoader(); var ball_tween:Tween = new Tween(ball_mc, "_x", Regular.easeIn, 0, 300, 2, true); mcl.addListener(listener); xml.load("administracao/capa.xml"); xml.ignoreWhite = true; xml.onLoad = function(ok){ if(ok){ var cn = xml.firstChild.childNodes; for(var i:Number=0;i<cn.length;i++){ fotos[i] = cn[i].firstChild.childNodes; } } else { trace("Erro no XML"); } if (fotos[inic] != null){ alvo._alpha = 0; tempo = setInterval(setAlpha, 100); mcl.loadClip(fotos[inic].toString(),alvo); alvo._xscale = alvo._yscale = 100; } } function trocaImagem(){ if (fotos[inic + 1] != null){ mcl.loadClip(fotos[inic + 1].toString(),alvo); alvo._alpha = 0; tempo = setInterval(setAlpha, 100); //alvo.loadMovie(fotos[inic + 1]); alvo._xscale = alvo._yscale = 100; if (inic >= fotos.length){ inic = 0; } else { inic++; } } else { inic = -1; } } setInterval(trocaImagem,5000); // 2 segundos por foto da função vai.onPress = function(){ trocaImagem (); } volta.onPress = function(){ mcl.loadClip(fotos[inic - 1].toString(),alvo); inic = inic - 1; trocaimagem(); } function setAlpha(){ alvo._alpha += 10; if(alvo._alpha == 100){ clearInterval(tempo); } } P.S: localmente ta funcionando normal. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Setembro 2, 2009 eu acho que o problema é que quando você roda na web, tem que levar em conta o tempo de carregamento das imagens como a imagem não carrega em 2 segundo(tempo que você deixou para cada), ela troca para a outra sem aparecer você pode usar o evento onLoaderInit do MovieClipLoader, para saber quando a imagem foi carregada, dentro desse evento você colocaria o setInterval para esperar 2 segundo para dar o efeito de alpha testa ai para ver, qualquer coisa é só postar Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Setembro 3, 2009 coloquei o setInterval dentro de um onLoadInit, mas nao deu certo. é o carregamento das imagens mesmo o problema, pois elas demoram muito a ser carregadas para o stage. teria como me auxliar no uso do onLoadInit de acordo com meu código? System.useCodepage = true; var inic = 0; var xml: XML = new XML(); var listener: Object = new Object(); var fotos:Array = new Array(); var mcl:MovieClipLoader = new MovieClipLoader(); mcl.addListener(listener); xml.load("administracao/capa.xml"); xml.ignoreWhite = true; xml.onLoad = function(ok){ if(ok){ var cn = xml.firstChild.childNodes; for(var i:Number=0;i<cn.length;i++){ fotos[i] = cn[i].firstChild.childNodes; } } else { trace("Erro no XML"); } if (fotos[inic] != null){ alvo._alpha = 0; tempo = setInterval(setAlpha, 100); mcl.loadClip(fotos[inic].toString(),alvo); alvo._xscale = alvo._yscale = 100; } } function trocaImagem(){ if (fotos[inic + 1] != null){ mcl.loadClip(fotos[inic + 1].toString(),alvo); alvo._alpha = 0; tempo = setInterval(setAlpha, 100); //alvo.loadMovie(fotos[inic + 1]); alvo._xscale = alvo._yscale = 100; if (inic >= fotos.length){ inic = 0; } else { inic++; } } else { inic = -1; } } setInterval(trocaImagem,20000); // 2 segundos por foto da função vai.onPress = function(){ trocaImagem (); } volta.onPress = function(){ mcl.loadClip(fotos[inic - 1].toString(),alvo); inic = inic - 1; trocaimagem(); } function setAlpha(){ alvo._alpha += 10; if(alvo._alpha == 100){ clearInterval(tempo); } } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 3, 2009 onloadinit se usa assim: var mcl:MovieClipLoader = new MovieClipLoader(); var mc:MovieClip = this.createEmtpyMovieClip('mc', 1); var obj:Object = new Object(); mcl.addListener(obj); mcl.loadClip('minhafoto.jpg', mc); obj.onloadinit = function(){ trace('carreguei'); } Lembrando que onloadinit tem letra maiuscula tanto o L do load como o i de init Abraços Compartilhar este post Link para o post Compartilhar em outros sites