Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZKdesign

Problema com banner rotativo

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.