Ir para conteúdo

Arquivado

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

GabrielFerrari

Menu horizontal "3D"

Recommended Posts

Olá Pessoal http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif

 

Fiz uma adaptação de um menuzinho bem bacana desse menu -> http://www.pontoflash.com.br/colunas/materia.php?Item=366

 

O que mudei:

Ele não precisa mais do mouse para girar

Está na diagonal

 

sou coisas simples mas que podem fazer o pessoal peder um tempinho bom então estou postando um pronto para quem quer usar/aprender.

 

Caso não entenda nada de AS mas quer alterar o menu:

 

/*******************************************/
// variavies de configuracao
/*******************************************/
// guardar as instancias a serem rotacionadas em um vetor
var clips = Array("mc1", "mc2", "mc3", "mc4", "mc5");
var raio = 230;				 // raio de rotacao
var aceleracao = 2;	  // aceleracao do mouse para o giro
var alphaMinimo = 20;	   // transparencia do botao de menu mais distante
var alphaMaximo = 70;	  // 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 = 0;  // pixels em torno do centro nos quais o
								  // mouse nao gira o menu

 

 

var raio = 230; -> Mude esse valor para o espaçamento dos itens.

 

var aceleracao = 2; -> Mude o valor para ele ir mais rápido ou devagar

 

 

Quem não entender as mudanças basta comparar o código do link que postei com ele "normal" com o que eu alterei.

Download: http://rapidshare.com/files/173540467/menu...smouse.fla.html

 

 

Feliz Natal a todos http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo, eu gostei muito desse menu, eu já tinha ele só que na empresa que eu trabalhava apesar eu falei ate com o dono dele, tinha perguntado como deixar ele na horizontal ele me mandaou um email so que eu não tenho mais o e-mail dele explicava tudinho.

você poderia me explicar me ensinar como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É basicamente trocar Y por X

 

Compare esse código com o do site e veja a diferença:

 

/*******************************************/
// variavies de configuracao
/*******************************************/
// guardar as instancias a serem rotacionadas em um vetor
var clips = Array("mc1", "mc2", "mc3", "mc4", "mc5");
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 = 70;	  // 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 / 2;
var yIni = Stage.height / 2;

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 = 10; // 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._xmouse - xIni)
   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._x = 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);
   }
}

 

 

 

 

 

http://rapidshare.com/files/180085116/Menu...zontal.rar.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Sera que poderia reorganizar o site la por que o link consta como quebrado, eu naum entendo nada de action ainda mas preciso de um menu desses urgente se poder eu agradeço ;)

 

Vi as comparações mas ao trocar o para o seu condigo um dos itens do menu fica fora se sincronismo poderia ajudar?

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.