Então, Eu consegui criar o menu com a descrição da foto após tranforma-la em um botão. Tentei usar o rollout e rollover mais não conseguir dá erro (Mouse events are permitted only for button instances). Eu alterei o valor de "var mouseSeguro" pra 0, mais não ficou legal. Ele fica girando e só para logico quando o mouse está no centro do palco. Mais o que eu quero é poder alternar essa animação com 2 botões (esquerdo/direito) e não pela posição do mouse e em que lugar da AS tenho que adicionar o rollover e roollout para da um stop parcial na animação ? Tentei em todas as linha e não consegui. Mais uma vez obrigado Thelon pela dica! /*******************************************/
// variavies de configuracao
/*******************************************/
// guardar as instancias a serem rotacionadas em um vetor
var clips = Array("mc1", "mc2", "mc3", "mc4", "mc5", "mc6", "mc7", "mc8");
var raio = 160; // raio de rotacao
var aceleracao = 0.015; // aceleracao do mouse para o giro
var alphaMinimo = 20; // transparencia do botao de menu mais distante
var alphaMaximo = 90; // 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 = 80; // 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 = 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 = 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 é 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];
// 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.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);
}
}