ZKdesign 0 Denunciar post Postado Julho 12, 2009 Eae Galera, estou com um problema em um banner rotativo, ele sozinho vai mudando numa boa, porém quando clico nos botões referentes a cada banner ele não está limpando o setInterval(); Segue código function trocaJob(){ trabalhos.barraText._alpha = 0; trabalhos.titulo_txt.text = ""; trabalhos.desc_txt.text = ""; job += 1; if(job == 4){ job = 1; } trabalhos.jobHome.loadMovie(home.firstChild.childNodes[0].childNodes[job - 1].attributes.imagem); var fade:Tween = new Tween(trabalhos.transicao, "_alpha", Regular.easeOut, 100, 0, 1, true); var animaD:Tween = new Tween(trabalhos, "_y", Regular.easeOut, trabalhos._y, trabalhos._y, 0.2, true); animaD.onMotionfinished = function(){ var animaA:Tween = new Tween(trabalhos.barraText, "_alpha", Regular.easeOut, 0, 80, 0.5, true); var animaB:Tween = new Tween(trabalhos.barraText, "_y", Regular.easeOut, 53.6, 69.6, 0.3, true); } var animaC:Tween = new Tween(trabalhos, "_x", Regular.easeOut, tranbalhos._x, trabalhos._x, 0.6, true); animaC.onMotionfinished = function(){ trabalhos.titulo_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.titulo; trabalhos.desc_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.desc; } travaBtn("marcaJob" + job); } trabalhos.marcaJob1.onRelease = function(){ clearInterval(intervalo) job = 0; intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob2.onRelease = function(){ job = 1; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob3.onRelease = function(){ job = 2; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Julho 12, 2009 Declare primeiro esse intervalo fora de todas as funções. var intervalo:Number; Ai dará certo. Compartilhar este post Link para o post Compartilhar em outros sites
ZKdesign 0 Denunciar post Postado Julho 12, 2009 Valeu a ajuda andré, mas não está rolando ainda, continua com o mesmo problema!! Alguém mais tem idéia do que pode estar acontecendo? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 13, 2009 Olá, Veja se com a solução a baixo resolve seu problema: var intervalo = setInterval(trocaJob, 5000); function trocaJob(){ trabalhos.barraText._alpha = 0; trabalhos.titulo_txt.text = ""; trabalhos.desc_txt.text = ""; job += 1; if(job == 4){ job = 1; } trabalhos.jobHome.loadMovie(home.firstChild.childNodes[0].childNodes[job - 1].attributes.imagem); var fade:Tween = new Tween(trabalhos.transicao, "_alpha", Regular.easeOut, 100, 0, 1, true); var animaD:Tween = new Tween(trabalhos, "_y", Regular.easeOut, trabalhos._y, trabalhos._y, 0.2, true); animaD.onMotionFinished = function(){ var animaA:Tween = new Tween(trabalhos.barraText, "_alpha", Regular.easeOut, 0, 80, 0.5, true); var animaB:Tween = new Tween(trabalhos.barraText, "_y", Regular.easeOut, 53.6, 69.6, 0.3, true); } var animaC:Tween = new Tween(trabalhos, "_x", Regular.easeOut, tranbalhos._x, trabalhos._x, 0.6, true); animaC.onMotionFinished = function(){ trabalhos.titulo_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.titulo; trabalhos.desc_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.desc; } travaBtn("marcaJob" + job); } trabalhos.marcaJob1.onRelease = function(){ clearInterval(intervalo) job = 0; intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob2.onRelease = function(){ job = 1; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob3.onRelease = function(){ job = 2; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } Se funcionar é pq você não estava declarando corretamente o intervalo ;) As variaveis de intervalo devem ser declaradas fora de função alguma... Pois ela tem de ser acessada de qualquer lugar de seu script. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
ZKdesign 0 Denunciar post Postado Julho 15, 2009 Berseck não rolou não, continua igual antes. Quando clica ele muda a variável, mas nem limpa o setInterval atual e nem chama o novo, ai quando acaba o intervalo como a variável foi alterada ele vai para o banner correspondente, porém somente quando acabar o intervalo e não na hora do clique como deveria ser. Segue o código novamente import mx.transitions.Tween; import mx.transitions.easing.*; var job:Number = 0; var home:XML = new XML(); home.ignoreWhite = true; home.load("xml/home.xml"); home.onLoad = function(){ trocaJob(); var intervalo = setInterval(trocaJob, 5000); function trocaJob(){ trabalhos.barraText._alpha = 0; trabalhos.titulo_txt.text = ""; trabalhos.desc_txt.text = ""; job += 1; if(job == 4){ job = 1; } trabalhos.jobHome.loadMovie(home.firstChild.childNodes[0].childNodes[job - 1].attributes.imagem); var fade:Tween = new Tween(trabalhos.transicao, "_alpha", Regular.easeOut, 100, 0, 1, true); var animaD:Tween = new Tween(trabalhos, "_y", Regular.easeOut, trabalhos._y, trabalhos._y, 0.2, true); animaD.onMotionFinished = function(){ var animaA:Tween = new Tween(trabalhos.barraText, "_alpha", Regular.easeOut, 0, 80, 0.5, true); var animaB:Tween = new Tween(trabalhos.barraText, "_y", Regular.easeOut, 53.6, 69.6, 0.3, true); } var animaC:Tween = new Tween(trabalhos, "_x", Regular.easeOut, tranbalhos._x, trabalhos._x, 0.6, true); animaC.onMotionFinished = function(){ trabalhos.titulo_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.titulo; trabalhos.desc_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.desc; } travaBtn("marcaJob" + job); } trabalhos.marcaJob1.onRelease = function(){ clearInterval(intervalo) job = 0; intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob2.onRelease = function(){ job = 1; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob3.onRelease = function(){ job = 2; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } } Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 15, 2009 Coloca a declaração de INTERVALO fora de todas as funções!!!! Tem escrito FUNCTION não poem var..... dentro a não ser que a variavel vá valer apenas para aquela função Exemplo import mx.transitions.Tween; import mx.transitions.easing.*; var intervalo = setInterval(trocaJob, 5000); var job:Number = 0; var home:XML = new XML(); home.ignoreWhite = true; home.load("xml/home.xml"); home.onload = function(){ trocaJob(); function trocaJob(){ trabalhos.barraText._alpha = 0; trabalhos.titulo_txt.text = ""; trabalhos.desc_txt.text = ""; job += 1; if(job == 4){ job = 1; } trabalhos.jobHome.loadMovie(home.firstChild.childNodes[0].childNodes[job - 1].attributes.imagem); var fade:Tween = new Tween(trabalhos.transicao, "_alpha", Regular.easeOut, 100, 0, 1, true); var animaD:Tween = new Tween(trabalhos, "_y", Regular.easeOut, trabalhos._y, trabalhos._y, 0.2, true); animaD.onMotionfinished = function(){ var animaA:Tween = new Tween(trabalhos.barraText, "_alpha", Regular.easeOut, 0, 80, 0.5, true); var animaB:Tween = new Tween(trabalhos.barraText, "_y", Regular.easeOut, 53.6, 69.6, 0.3, true); } var animaC:Tween = new Tween(trabalhos, "_x", Regular.easeOut, tranbalhos._x, trabalhos._x, 0.6, true); animaC.onMotionfinished = function(){ trabalhos.titulo_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.titulo; trabalhos.desc_txt.text = home.firstChild.childNodes[0].childNodes[job - 1].attributes.desc; } travaBtn("marcaJob" + job); } trabalhos.marcaJob1.onRelease = function(){ clearInterval(intervalo) job = 0; intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob2.onRelease = function(){ job = 1; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } trabalhos.marcaJob3.onRelease = function(){ job = 2; clearInterval(intervalo); intervalo = setInterval(trocaJob, 5000); } } Se a variavel ficar como está no seu código ela é uma variavel indefinida para os botões... Entendeu??????? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
ZKdesign 0 Denunciar post Postado Julho 16, 2009 Realmente Berseck, estando dentro da função não iria rolar, já arrumei isso, mas mesmo assim não rolou... =[ Compartilhar este post Link para o post Compartilhar em outros sites
ZKdesign 0 Denunciar post Postado Julho 20, 2009 Mais alguém tem alguma ideia do que pode estar acontecendo?! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 25, 2009 Sim eu tenho ;) Colocar todos as funções de chamadas de botão para fora da função load ;) abraços Compartilhar este post Link para o post Compartilhar em outros sites