Menu Rotativo

Olá Pessoal

Math (objeto) - Definição retirada da documentação do Flash

O objeto Math é um objeto de alto nível que você pode acessar sem usar um construtor.
Use os métodos e propriedades desse objeto para acessar e manipular constantes e funções
matemáticas. Todas as propriedades e métodos do objeto Math são estáticas e devem ser chamadas
com a sintaxe Math.method(parâmetro) ou Math.constant. Em ActionScript, as constantes
são definidas com a precisão máxima de números de ponto flutuante IEEE-754 de dupla precisão.
Vários métodos do objeto Math usam o radiano de um ângulo como parâmetro. Você pode usar a
equação abaixo para calcular os valores radianos ou simplesmente passar a equação (inserindo um
valor para graus) para o parâmetro radiano.
Para calcular um valor radiano, use esta fórmula:
radiano = Math.PI/180 * grau
O exemplo a seguir mostra a passagem de uma equação como um parâmetro para calcular o seno
de um ângulo de 45 graus:

Actionscript:
  1. Math.SIN(Math.PI/180 * 45) é o mesmo que Math.SIN(.7854)

O objeto Math é totalmente suportado no Flash Player 5. Você pode usar métodos do objeto
Math no Flash Player 4, mas eles são emulados com aproximações e podem não ser tão precisos
quanto as funções matemáticas não emuladas suportadas pelo Flash Player 5.

Math.PI

A razão entre a circunferência de um círculo e o seu diâmetro (aproximadamente 3,14159).

Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e propriedades do objeto Math são emulados com
aproximações e podem não ser tão precisos quanto as funções matemáticas não emuladas
suportadas pelo Flash Player 5.

Uso
Math.PI

Parâmetros
Nenhum.

Retorna
Nada.

Descrição
Constante; uma constante matemática da razão entre a circunferência de um círculo e o seu
diâmetro expressa como pi, com um valor de 3,14159265358979

Math.cos

Calcula um cosseno.

Uso
Math.cos(x)

Parâmetros
x Um ângulo medido em radianos.

Retorna
Um número.

Descrição
Método; retorna o cosseno (um valor de -1,0 a 1,0) do ângulo especificado pelo parâmetro x. O
ângulo x deve ser especificado em radianos. Use as informações descritas na introdução do objeto
Math para calcular um radiano.

Math.sin

Calcula um seno.

Disponibilidade
Flash Player 5. No Flash Player 4, os métodos e as propriedades do objeto Math são emulados
através de aproximações e podem não ser tão precisos quanto as funções matemáticas não
emuladas suportadas pelo Flash Player 5.

Uso
Math.sin(x)

Parâmetros
x Um ângulo medido em radianos.

Retorna
Nada.

Descrição
Método; calcula e retorna o seno do ângulo especificado em radianos. Use as informações
descritas na introdução do objeto Math para calcular um radiano.

Bom agora que já nos familiarizamos com os métodos da classe Math, vamos ao nosso exemplo, crie um arquivo flash com o Stage de 1024 X 650, nele crie um quadrado de 185 X 138, converta esse quadrado em MovieClip com o linkage de "item", delete ele do Stage deixando-o apenas na Library, agora vá nesse movieclip e dentro dele crie um movieclip vazio com a instância de "carrega", ainda dentro do movieclip "item", crie um campo de texto dinâmico chamado "nome", pronto agora no primeiro frame do seu arquivo cole o código abaixo:

Actionscript:
  1. Stage.align = "TL";
  2. Stage.scaleMode = "noScale";
  3. #include "mc_tween2.as"
  4. /////////////////////////
  5. //DEPTHS E PROPRIEDADES
  6. /////////////////////////
  7. var radiusX:Number = Stage.width/2.5;
  8. var radiusY:Number = 50;
  9. var centerX:Number = 450;
  10. var centerY:Number = Stage.height/4;
  11. var velocidade:Number = 30;
  12. //////////////////////////////////////////////
  13. //MONTA ARRAY DOS NOMES E DAS IMAGENS DO MENU
  14. /////////////////////////////////////////////
  15. var numeroMenu:Array = new Array();
  16. var img:Array = new Array();
  17. numeroMenu[0] = "EMPRESA";
  18. numeroMenu[1] = "PORTIFÓLIO";
  19. numeroMenu[2] = "NOTÍCIAS";
  20. numeroMenu[3] = "CONTATO";
  21. //////////////////////////
  22. img[0] = "empresa.jpg";
  23. img[1] = "portifolio.jpg";
  24. img[2] = "noticias.jpg";
  25. img[3] = "contato.jpg";
  26. ////////////////////////
  27. valorTotal = numeroMenu.length;
  28. imgTotal = img.length;
  29. ////////////////////////
  30. /////FUNÇÃO MONTA MENU
  31. ///////////////////////
  32. function inicia() {
  33. //For tomando como parametro o
  34. //valorTotal = Total de Itens do menu
  35. //imgTotal = Total de imagens do Menu
  36. for (var i = 0; i
  37. //Adcionando o MovieClip
  38. var t:MovieClip = attachMovie("item", "item"+i, i+1);
  39. t.angulo = i*((Math.PI*2)/valorTotal);
  40. //Setando onEnterFrame
  41. t.onEnterFrame = mover;
  42. //Propriedades iniciais do MovieClip
  43. t._alpha = 0;
  44. t.alphaTo(100, 1, "linear", 0.1);
  45. //Setando o nome de cada Item
  46. t.nome.text = numeroMenu[i];
  47. //Setando a imagem de cada Item
  48. t.carrega.loadMovie("menu/"+img[i]);
  49. //Açõe Dos botões.
  50. t.onRollOver = function() {
  51. this.alphaTo(80, 0.5, "linear");
  52. };
  53. t.onRollOut = t.onDragOut=function () {
  54. this.alphaTo(100, 0.5, "linear");
  55. };
  56. }
  57. }
  58. inicia();
  59. /////////////////////////////
  60. /////FUNÇÃO MOVE COM O MOUSE
  61. ////////////////////////////
  62. function mover() {
  63. this._x = Math.cos(this.angulo)*radiusX+centerX;
  64. this._y = Math.sin(this.angulo)*radiusY+centerY;
  65. var s:Number = this._y/(centerY+radiusY);
  66. this._xscale = this._yscale=s*100;
  67. this.angulo += this._parent.velocidade;
  68. this.swapDepths(Math.round(this._xscale)+120);
  69. this.blurTo(Math.round((-this._xscale+65), 2, 2, "linear"));
  70. }
  71. onMouseMove = function () {
  72. velocidade = (_root._xmouse-centerX)/7500;
  73. };

Se você seguiu todos os passos do tutorial, agora é só executar para ver o resultado.

Veja um Exemplo Funcionando

Abraço a todos...


2 Responses

  1. alex ribeiro:

    Olá, gostaria de saber como faço para colocar link em cada menu, já tentei de qse tudo e n consegui.

    Fico no aguado!

    Posted on dezembro 22nd, 2008 at 5:11 pm

  2. Billigflüge:

    hello, very useful article
    I’m a beginner in Flash Player 5. I have not really payed attention that the methodes of Math are static and must be called with Math.method. I tried your example and succeeded to get it running amazing! I was searching for a long time for an example that helps me to simulate a car movement.
    U have really saved my time
    that’s a part of the Code:
    …..
    this.tempo = 0;
    this.move = function ()
    {
    this._y -= this.tempo * Math.cos (this._rotation * (Math.PI / 180));
    this._x += this.tempo * Math.sin (this._rotation * (Math.PI / 180));
    };

    Sorry I can’t write in Portugese because I’ m learning it just since 6 monthes, I hope you understand it. keep up the good work.

    Posted on abril 18th, 2009 at 5:18 am

Leave a Reply