Criando olhos que seguem o mouse

Crie 3 camadas(layers):

1ª Actions

2ª Olhos

3ª Face


Primeiro selecione o olho esquerdo, e instancie como "olho", então selecione o olho direito e instancie como "olho2". Agora iremos criar um script que faça com que os olhos sigam o mouse. Obviamente, esse script necessitará calcular a todo momento aonde o mouse está no stage para olhar na direção correta, mas calma isso é fácil, você verá. Por está razão, no segundo frame da camada Actions, crie um keyframe e insira a seguinte ação:

CODE
gotoAndPlay(1);

Isto fará com que o movie fique sempre rodando, ou seja as ações no frame 1 ficarão sempre rodando.

IDÉIA BÁSICA

Bem, a idéia básica que teremos é calcular o ângulo da posição do olho até a posição do mouse e então rotacionar o olho por esse ângulo. E para isso nós iremos tirar os livros de trigonometria do armário e dar uma olhadinha!!!! Sacanagem, eu já fiz isso pra você.

Se tanA=a/b, então A = tan-1(a/b). Bem, os caras da Macromedia também são bons em matemática, por isso eles já facilitaram nossas vidas com algumas funções para nossa questão. Para calcular A, deveremos pegar as distâncias a e b, para isso insira o seguinte código no frame 1 de nosso filme:

CODE
a = olho._y-_mouse;
b = olho._x-_mouse;

Agora, para tornamos estas distâncias no ângulo A usaremos este código:

CODE
anguloA = Math.atan2(a,b);

O único problema é que assim estaremos pegando as distâncias do ângulo em radianos não em graus, que nada mais é do que uma outra forma de se medir ângulos. Para converter o ângulo A em graus usaremos essa linha:

CODE
graus = anguloA/(math.pi/180);
setProperty ("olho", _rotation, graus);
[/b]

Agora teste seu filme, teoricamente o olho esquerdo deverá seguir o mouse. Estando tudo certo, faça uma cópia e cole na área de script do olho direito, mas lembre-se de mudar o nome das variáveis usadas, pois senão você terá erros de conflito. Lembre-se, esses códigos vão no primeiro frame da camada Actions!!!!! Finalmente, o código completo para os dois olhos será assim:

CODE
a = olho._y-_ymouse;
b = olho._x-_xmouse;
anguloAA = Math.atan2(a, b);
graus = anguloA/(Math.pi/180);
setProperty ("olho", _rotation, graus);
a2 = olho2._y-_ymouse;
b2 = olho2._x-_xmouse;
anguloA2 = Math.atan2(a2, b2);
graus2 = anguloA2/(Math.pi/180);
setProperty ("olho2", _rotation, graus2);