Luis Vagner 0 Denunciar post Postado Maio 24, 2011 Olá pessoal! Eu estou com duas dúvidas que não estou conseguindo resolver no script abaixo e tenho certeza que é na verdade muito fácil porém estou quebrando a cabeça e não estou conseguindo... O script lê o xml e vai rodando a imagem e o texto, 1º Eu precisava que ele parasse de passar quando chegar no último item do xml... como faço isso? 2º Como faço para rodar 3 itens do xml, parar carregar um swf externo através do loadmovie e depois que terminar de rodar o swf externo ele voltar a mostrar o restante dos itens do xml? Galera muito obrigado por qualquer tipo de ajuda! import mx.transitions.Tween; import mx.transitions.easing.*; var myShowXML = new XML(); myShowXML.ignoreWhite = true; myShowXML.load("tv_metra.xml"); myShowXML.onLoad = function() { _root.mySpeed = myShowXML.firstChild.attributes.speed; _root.myImages = myShowXML.firstChild.childNodes; _root.myImagesNo = myImages.length; callImages(); }; function callImages() { _root.myMCL = new MovieClipLoader(); _root.myPreloader = new Object(); _root.myMCL.addListener(_root.myPreloader); _root.myClips_array = []; _root.myPreloader.onLoadProgress = function(target) { _root.descricao.myText_txt.text = "Carregando.. "+_root.myClips_array.length+"/"+_root.myImagesNo+" Completado"; }; _root.myPreloader.onLoadComplete = function(target) { _root.myClips_array.push(target); target._alpha = 0; if (_root.myClips_array.length == _root.myImagesNo) { _root.target_mc = -1; moveSlide(); myShowInt = setInterval(moveSlide, (_root.mySpeed*1000)+1000); } }; for (i=0; i<_root.myImagesNo; i++) { temp_url = _root.myImages.attributes.url; temp_mc = myContainer_mc.createEmptyMovieClip(i, myContainer_mc.getNextHighestDepth()); _root.myMCL.loadClip(temp_url,temp_mc); } } function moveSlide() { current_mc = _root.myClips_array[_root.target_mc]; new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true); _root.logo.play(); _root.base.play(); _root.target_mc++; if (_root.target_mc>=_root.myImagesNo) { _root.target_mc = 0; _root.logo.gotoAndStop(0); _root.base.gotoAndStop(0); } _root.descricao.myText_txt.text = _root.myImages[target_mc].attributes.desc; next_mc = _root.myClips_array[_root.target_mc]; new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true); } Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Maio 24, 2011 Você tem um intervalo com o nome de myShowInt que chama a função moveSlide a cada x segundos, dentro da função ele tem um if que verifica se chegou no último item do seu xml, e faz ele voltar ao começo. Como você quer que ele pare o intervelo ao lugar de "loopar", você precisa usar o clear Interval, dessa forma: if (_root.target_mc>=_root.myImagesNo) { clearInterval(myShowInt); } Compartilhar este post Link para o post Compartilhar em outros sites
Luis Vagner 0 Denunciar post Postado Maio 24, 2011 Você tem um intervalo com o nome de myShowInt que chama a função moveSlide a cada x segundos, dentro da função ele tem um if que verifica se chegou no último item do seu xml, e faz ele voltar ao começo. Como você quer que ele pare o intervelo ao lugar de "loopar", você precisa usar o clear Interval, dessa forma: if (_root.target_mc>=_root.myImagesNo) { clearInterval(myShowInt); } Em primeiro, gostaria de lhe agradecer pela sua atenção e por tomar seu tempo... Meu amigo, era lá mesmo... só que eu agora fiz o seguinte, eu coloquei if (_root.target_mc>=_root.myImagesNo) { gotoAndStop(2); } E no frame 2 coloquei stop(); this.createEmptyMovieClip("DataHora",1); DataHora.loadMovie("DataHora.swf"); function voltar(){ _root.gotoAndStop(1); } setInterval(voltar(),1000000); SÓ QUE DESSA FORMA ELA FAZ ISO SÓ NO FINAL DA LEITURA DE TODOS OS ITENS DO XML, VAMOS SUPOR QUE EU TENHA QUE PASSAR 3 ITENS DO XML DEPOIS IR PARA O FRAME 2 PARA CARREGAR O SWF (DataHora.swf) COMO ACIMA, DEPOIS RETORNAR PARA O FRAMA 1 E FAZER ISSO ACABAR OS ITENS DO XML? MAIS UMA VEZ MUITO OBRIGADO! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Maio 24, 2011 Você copiou o código? Precisa entender o código que está trabalhando. Você te ma variável _root.target_mc para controlar isso, se você quer que no terceiro item vá para o frame 2, um if simples resolveria isso, fazendo if(_root.target_mc == 2){ clearInterval e o restante do código }, coloquei 2 pois a contagem dos nós começa do zero, ficando 0, 1, 2... com if simples você resolve a maioria das coisas que precisa. Compartilhar este post Link para o post Compartilhar em outros sites