Ir para conteúdo

POWERED BY:

Arquivado

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

LadyAra

[Resolvido] Menu Circular em 3D

Recommended Posts

Boa tarde

 

Sou iniciante em Flash..na realidade só sei fazer animações "bobinhas"

mas me foi solicitado(meu primeiro emprego) a construir um menu igual ao do link

 

Menu Circular em 3D

 

Eu criei o documento(com tamanho e largura que eu precisava)

criei os botões..converti pra moviclip tudo como explicado

 

mas surgiu a dúvida em onde colocar o action script

 

É na layer 1 de cada movieclip criado

ou na layer da Scene1?

 

Dos dois jeitos não funcionou

 

apareceu os seguintes erros

 

1137: Incorrect number of arguments. Expected no more than 1.

1119: Access of possibly undefined property width through a reference with static type Class.

1119: Access of possibly undefined property height through a reference with static type Class.

1120: Access of undefined property velocidade.

1120: Access of undefined property velocidade.

1120: Access of undefined property velocidade.

1120: Access of undefined property _root.

1120: Access of undefined property i.

Warning: 1112: Array(x) behaves the same as new Array(x). To cast a value to type Array use the expression x as Array instead of Array(x).

Warning: 1090: Migration issue: The onEnterFrame is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'enterFrame', callback_handler).

Warning: 1058: Migration issue: The property _root is no longer supported. This property has been removed. The closest equivalent is the Stage, which serves as the root of the ActionScript 3.0 display list..

Warning: 1058: Migration issue: The property _root is no longer supported. This property has been removed. The closest equivalent is the Stage, which serves as the root of the ActionScript 3.0 display list..

 

Será que alguém poderia me ajudar com esse tutorial??

 

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta usando ActionScript 2 em um arquivo salvo como ActionScript 3

 

Abraços

 

:P ops.....tens razão!!

obrigada...

estou conseguindo agora....tá rodando..tudo desalinhado mas tá hehe =)

Obrigadaaa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta usando ActionScript 2 em um arquivo salvo como ActionScript 3

 

Abraços

 

:P ops.....tens razão!!

obrigada...

estou conseguindo agora....tá rodando..tudo desalinhado mas tá hehe =)

Obrigadaaa

 

Thiago grata pela ajuda...mas se não for pedir muito

como faço para pegar a posição do menu central..sabe o que está no meio?

pois preciso que somente o central tenha alpha 100...os outros não.

e no exemplo do tutorial..somente o mais afastado fica com alpha minimo.

por favor..me ajude..como pego a posição central...

já tentei isso

 

if(ptr._xscale == ptr._x){

ptr._alpha = alphaMaior;

}

só que ai todo mundo fica com alpha 100%

 

Me ajude fazendo favor, meu prazo de entrega acaba hoje e só falta isso pra aprovarem.

 

Desculpa reviver o post,mas creio que não faz sentido criar outro com o mesmo nome :!:

 

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 = rodar;

function rodar () {	
// 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;
} 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]];				
	// calcular a diferenca angular desse menu
	// em relacao a origem da roda
	ptr.difAngular = difAngular*i;
	var centro = 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;
	[b]if(pos = centro){
		     ptr._alpha = perc*difAlpha+alphaMinimo;
		}else{

	ptr._alpha = alphaMaior;
		}[/b]
	ptr._xscale = ptr._yscale=perc*difEscala+escalaMinima;
	// colocar o menu acima dos que estao mais afastados
	ptr.swapDepths(pos.y+dobroRaio);


	// alterar posicao vertical do menu
	var pctPos = (ptr._xscale-escalaMinima)/(difEscala/100);
	var posAlt = (pctPos*(diffAltura/100))+alturaMinima;
	ptr._y = posAlt;
	trace(posAlt)

}

};

 

Mudei o que está em negrito e consegui deixar alpha 100 em um e minimo nos outros..o problema é que só uma imagem fica com alphamaximo o tempo todo...tipo é como se eu estivesse definindo que a image1 = alphaMaior.

acho que quase consegui pegar a posição central..

Mas eu queria que todo mundo que estive no centro...ficasse com alphaMaior = 100;

 

Alguma idéia..por favor :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz como tu ensinou

 

// posicao central do menu em X e Y
var xIni = Stage.width  / 2;
var yIni = Stage.height / 2;
var centro = xIni + yIni;

//[b]e lá em baixo[/b]

ptr._xscale = ptr._yscale=perc*difEscala+escalaMinima;
// colocar o menu acima dos que estao mais afastados
ptr.swapDepths(pos.y+dobroRaio); 
var vale =  ptr.getDepth();

	// alterar posicao vertical do menu
	var pctPos = (ptr._xscale-escalaMinima)/(difEscala/100);
	var posAlt = (pctPos*(diffAltura/100))+alturaMinima;
	ptr._y = posAlt;
	     if(ptr.getDepth() == centro){
		ptr._alpha = alphaMaior; 
					 }
	trace(posAlt)

}

 

Ainda não deu :ermm:

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.