Ir para conteúdo

Arquivado

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

GabrielFerrari

menu diagonal

Recommended Posts

ola Pessoal olha eu enchendo o saco denovo :P

 

eu vi esse menu http://www.pontoflash.com.br/colunas/materia.php?Item=366 e achei "supimpa" comecei a mecher consegui colocalo na horizontal ateh beleza

 

gostaria de saber se tem como fazelo na diagonal se alguem poder me dar umas dicas ow me passar algum tutorial semelhante ao q preciso fico muito grato

 

 

abrigado a todos :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui pessoal graças ao Eder Fortunato http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

para quem quiser saber ta ai a soluçao:

 

/*******************************************/
// 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;	// parcial de cada angulo

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;
		 ptr._x = xIni - 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);
	}
}

explicaçao do Eder

 

procura essa parte no código

 

 

CODE

// buscar as posicoes X (profundidade) e Y (altura) do menu

var pos = posCircular(angulo + ptr.difAngular, raio);

ptr._y = yIni + pos.y;

 

 

 

alterar pra isso

 

 

 

// buscar as posicoes X (profundidade) e Y (altura) do menu

var pos = posCircular(angulo + ptr.difAngular, raio);

ptr._y = yIni + pos.y;

ptr._x = xIni + pos.y;

 

 

 

 

pra fazer virar pro outro lado é assim

 

 

 

 

// buscar as posicoes X (profundidade) e Y (altura) do menu

var pos = posCircular(angulo + ptr.difAngular, raio);

ptr._y = yIni + pos.y;

ptr._x = xIni - pos.y;

 

é isso ai e obrigado a todos q leram o topico http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.