Ir para conteúdo

POWERED BY:

Arquivado

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

pedrovoltaire

[Resolvido] Menu Circular 3D

Recommended Posts

Bom dia Pessoal, valeu pela ajuda.

 

Estou usando este código para mostrar 4 figuras em um menu 3D

/*******************************************/
// variavies de configuracao
/*******************************************/
// guardar as instancias a serem rotacionadas em um vetor
var clips = Array("prato", "pizza", "hamburger", "bebida");
var raio = 150; // raio de rotacao
var aceleracao = 0.05; // aceleracao do mouse para o giro
var alphaMinimo = 20; // transparencia do botao de menu mais distante
var alphaMaximo = 100; // transparencia do botao de menu mais proximo
var escalaMinima = 50; // 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 nao 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 = Stage.width / 7;
var yIni = Stage.height / 1.9;

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 = 0; // 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.x = Math.sin(rad) * raio;
pos.y = Math.cos(rad) * raio;

return pos;
}

// funcao para ser chamada na mesma frequencia da animacao
// e que eh 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 = (_root._ymouse - yIni)
if (Math.abs(velocidade) <= mouseSeguro)
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 = _root[clips[i]];

// alterar posicao horizontal do menu
ptr._x = xIni;

// 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._y = yIni + pos.y;

// calcular percentual de afastamento do menu
// para alterar seu tamanho e transparencia
var perc = (pos.x + raio) / dobroRaio;
ptr._alpha = perc * difAlpha + alphaMinimo;
ptr._xscale = ptr._yscale = perc * difEscala + escalaMinima;

// colocar o menu acima dos que estao mais afastados
ptr.swapDepths(pos.x + dobroRaio);
}
}

Ele está rodando tudo certo!!!

O problema é que eu tenho 4 links dentro dele, um prato, uma pizza, um hamburguer e uma bebida, se eu clico no prato ele vai para o frame que está com o conteúdo do prato, até aí ok; mas se depois de clicar no prato eu clicar no link da pizza, ele vai para o frame da pizza porém duplica o menu, aparece dois menus no palco, um em cima do outro.

 

Aqui está o link, www.bombagrill.com.br/forum

 

Só para esclarecer, os botões estão dentro de um movie clip e usei o seguinte código para linkar o conteúdo:


on (press) {

	//Movieclip GotoAndStop Behavior
	_root.gotoAndStop("pizza");
	//End Behavior

}

Para linkar está indo normalmente, o problema mesmo é que quando acesso um dos links após ter acessado outro, ele duplica o menu, daí fica dois menus um cima do outro.

 

Valeu galera!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, será que não tem que colocar um código que limpa tudo que foi colocado no frame passado, porque olha só:

Tem o menu no primeiro frame, quando eu clico no link que vai para o frame 2 ele vai para o frame indicado porém duplica o menu, então será que não tem que colocar um código que limpe, ou algo do tipo, porque de repente ele está mantendo o menu no primeiro frame. Será que é isso?

Espero que isso ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema esta no comando swaptDepth, ele tem esse bug de manter os movieClips na tela

 

para resolver, coloque os botões "prato", "pizza", "hamburger", "bebida", dentro de uma movieClip

 

e coloque esse código ai em cima, do primeiro frame desse movieCLip

 

 

so´isso deve resolver

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, problema resolvido. É o seguinte, ao que tudo indica a falha foi minha.

 

Quando eu criava conteudo para os links, eu inseria em frames diferentes; daí eu dava um F6 para que por exemplo no frame 5 onde tinha o conteúdo do pimeiro link continuasse a visualizar o menu.

 

Porém de alguma forma, que eu não sei, não é necessário levar o menu para as outras áreas onde estão os conteúdos dos links, ou seja, criei o menu no frame 1 coloco o action e pronto, não preciso ir copiando o menu em áreas que estão o conteúdo dos links, ele vai automaticamente.

 

De qualquer forma, muito obrigado galera, valeu mesmo.

 

o problema esta no comando swaptDepth, ele tem esse bug de manter os movieClips na tela

 

para resolver, coloque os botões "prato", "pizza", "hamburger", "bebida", dentro de uma movieClip

 

e coloque esse código ai em cima, do primeiro frame desse movieCLip

 

 

so´isso deve resolver

 

 

[]´s

 

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.