Fiz um menu carrosel que está funcionando perfeitamente. Porém gostaria que ao clicar em algum no botão que está atrás o carrosel girasse e trazesse esse botão para uma determinada posição x. Mas gostaria que esse movimento não fosse brusco, mas que ele girasse, do mesmo jeito q está rodando com o movimento do mouse.
Bom, não sei seu fui claro. Mas segue o cód q estou usando.
Quem puder ajudar, agradeço.
stop();
/*******************************************/
// variavies de configuracao
/*******************************************/
// guardar as instancias a serem rotacionadas em um vetor
var clips = Array("mc1", "mc2", "mc3");
var raio = 450;// raio de rotacao
var aceleracao = 0.007;// aceleracao do mouse para o giro
var alphaMinimo = 10;// transparencia do botao de menu mais distante
var alphaMaximo = 100;// transparencia do botao de menu mais proximo
var escalaMinima = 30;// tamanho do botao de menu mais distante
var escalaMaxima = 100;// tamanho do botao de menu mais distante
var mouseSeguro = 100;// pixels em torno do centro nos quais o
// mouse não gira o menu
/*******************************************/
// Variaveis calculadas
/*******************************************/
// variacao da transparencia
var difAlpha = alphaMaximo-alphaMinimo;
// variacao do tamanho
var difEscala = escalaMaxima-escalaMinima;
// posicao central do menu em X e Y
var xIni = 550;
var yIni = 350;
var dobroRaio = raio*2;
var conversao = Math.PI/180;
// fator de conversao de angulo para radiano
var difAngular = 360/clips.length;
// diferenca angular entre os itens de menu
var angulo = -19;// angulo inicial da roda como um todo
/*******************************************/
// funcoes
/*******************************************/
// funcao para determinar as posicoes X e Y
// de um menu em funcao do angulo e do raio
function posCircular(angulo, raio) {
var pos = new Object();
var rad = angulo*conversao;
pos.y = Math.sin(rad)*raio;
pos.x = Math.cos(rad)*raio;
return pos;
}
// funcao para ser chamada na mesma frequencia da animacao
// e que é responsavel por girar o menu
this.onEnterFrame = function() {
// calculamos se o mouse esta fora da area central
// e com que velocidade o menu ira girar
velocidade = (this._xmouse-xIni);
if (Math.abs(velocidade)<=mouseSeguro) {
velocidade = 0;
}
//ação para quando passar na seção de Notícias e Contato
if (this._ymouse>=600 or this._ymouse<=170) {
velocidade = 0;
}
// funcao para chamar a Cena 2 = Conteúdo
if (conteudo == true) {
gotoAndPlay("conteudo");
conteudo = false;
}
//Para movimento / Seção Empresa
if (boxEmpresa == true or boxClientes == true or boxPortfolio == true) {
velocidade = 0;
} else {
velocidade *= aceleracao;
}// giramos o menu todo
angulo += velocidade;
// reposicionamos cada item do menu
for (i=0; i<clips.length; i++) {
// criar alias para o clipe de filme atual
var ptr = this[clips[i]];
// alterar posicao horizontal do menu
ptr._y = yIni;
// calcular a diferenca angular desse menu
// em relacao a origem da roda
ptr.difAngular = difAngular*i;
// buscar as posicoes X (profundidade) e Y (altura) do menu
var pos = posCircular(angulo+ptr.difAngular, raio);
ptr._x = xIni+pos.x;
// calcular percentual de afastamento do menu
// para alterar seu tamanho e transparencia
var perc = (pos.y+raio)/dobroRaio;
ptr._alpha = perc*difAlpha+alphaMinimo;
ptr._yscale = ptr._xscale=perc*difEscala+escalaMinima;
// colocar o menu acima dos que estao mais afastados
ptr.swapDepths(pos.y+dobroRaio);
}
};
Pergunta
sanntanna
Eae galera, beleza?
Fiz um menu carrosel que está funcionando perfeitamente. Porém gostaria que ao clicar em algum no botão que está atrás o carrosel girasse e trazesse esse botão para uma determinada posição x. Mas gostaria que esse movimento não fosse brusco, mas que ele girasse, do mesmo jeito q está rodando com o movimento do mouse.
Bom, não sei seu fui claro. Mas segue o cód q estou usando.
Quem puder ajudar, agradeço.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.