Llevo ya un tiempo siguiendo este foro y la verdad que, para ser sincero, no entiendo la mitad de cosas que posteais debido a mi (muy) básico nivel de ActionScript.
Quizás y debido a ello este el primer post que publico ya que me encuentro desarrollando una web en flash AS3 para un cliente y no encuentro la manera de añadir cierta funcionalidad al menu de navegación que estoy montando.
Hasta ahora todo ha ido bien siguiendo unos cuantos tutoriales y añadiendo algo de mi escaso conocimiento del lenguaje pero he llegado a un punto en el que creo que necesito hacer uso de Arrays y otros métodos que hoy por hoy aún no domino. De ahí mi llamada de socorro a este foro.
El tema es el siguiente, he creado un menu de navegación compuesto por MovieClips a modo de botones que contienen textos estaticos (about us, job offers, etc) y bajo el cual un pequeño bullet se anima siguiendo el cursor del usuario mediante tweens (+ en concreto estoy usando TweenMax). En estos Mc se anima la propiedad glowFilter de TweenMax al hacer ROLL_OVER y se "desanima" al hacer ROLL_OUT. Además una vez hecho CLICK sobre uno de esos Mc cambian de color para indicar al usuario en que sección se encuentra. Lo que necesitaria sería un codigo que me permitiese que esos Mc no permaneciesen con ese color distintivo una vez clicko en cualquiera de los otros botones del menu. He conseguido hacerlo pero en mi actual codigo es necesario volver a hacer ROLL_OVER sobre algun otro boton para que éste pierda ese color caracteristico que indica que el usuario se encuentra en esa sección.
Aqui os dejo el codigo por si alguien quiere echarme un cable. Desde ya, muchas gracias por vuestro tiempo.
Código ActionScript :
stop();
import fl.transitions.Tween;
import fl.transitions.easing.*;
import gs.TweenMax;
import gs.easing.*
//variable que contiene en que pagina estamos en referencia a los mc que actuan como botones
//para así poder determinar desde donde se dispara la funcion moveBulletBack, por defecto es la
//pagina activada. diferenciamos que About us es la pagina activada cargada defecto mediante el color distintivo
var currentPage:MovieClip = about_mc;
TweenMax.to(currentPage, 0.5, {tint:0x08CBDF});
//actuvamos e modo boton para los mc del menu nav para que el cursor apunte hacia ellos como botones
about_mc.buttonMode = true;
philosophy_mc.buttonMode = true;
jobs_mc.buttonMode = true;
contact_mc.buttonMode = true;
//por defecto bullet está debajo de about, la primera pagina en cargar
bullet_mc.x = about_mc.x;
//listeners para mover bullet en mouse over
philosophy_mc.addEventListener(MouseEvent.ROLL_OVER, moveBullet);
jobs_mc.addEventListener(MouseEvent.ROLL_OVER, moveBullet);
contact_mc.addEventListener(MouseEvent.ROLL_OVER, moveBullet);
about_mc.addEventListener(MouseEvent.ROLL_OVER, moveBullet);
//listeners para mover bullet atrás en caso de no clickar un boton
philosophy_mc.addEventListener(MouseEvent.ROLL_OUT, moveBulletBack);
jobs_mc.addEventListener(MouseEvent.ROLL_OUT, moveBulletBack);
contact_mc.addEventListener(MouseEvent.ROLL_OUT, moveBulletBack);
about_mc.addEventListener(MouseEvent.ROLL_OUT, moveBulletBack);
//listeners para el clickeo de botones que nos llevaran a otra pagina
philosophy_mc.addEventListener(MouseEvent.CLICK, newPage);
jobs_mc.addEventListener(MouseEvent.CLICK, newPage);
contact_mc.addEventListener(MouseEvent.CLICK, newPage);
about_mc.addEventListener(MouseEvent.CLICK, newPage);
//funcion que mueve bullet al hacer over en los botones y añade glow al mc además de cambiar color
function moveBullet(e:MouseEvent):void
{
//new Tween(bullet_mc,"x",Strong.easeOut,bullet_mc.x,e.currentTarget.x,.5,true);
TweenMax.to(bullet_mc, 0.5, {x:e.currentTarget.x, ease:Quad.easeInOut});
TweenMax.to(e.currentTarget, 1, {glowFilter:{color:0x08CBDF, alpha:1, blurX:10, blurY:10, strength:1.5, quality:3}, ease:Sine.easeInOut});;
TweenMax.to(e.currentTarget, 0.5, {tint:0x08CBDF});
}
//funcion que devuelve bullet a current target en caso de no cliclar en un boton y quita glow al mc y le quita el color
function moveBulletBack(e:MouseEvent):void
{
TweenMax.to(bullet_mc, 0.5, {x:currentPage.x, ease:Quad.easeInOut});
TweenMax.to(e.currentTarget, 0.5, {glowFilter:{color:0x08CBDF, alpha:1, blurX:10, blurY:10, strength:1.5, quality:3, remove:true}, ease:Sine.easeInOut});
if (currentPage != MovieClip(e.currentTarget)){
TweenMax.to(e.currentTarget, 0.5, {tint:0xF5FAF6});
}
}
//funcion que se ejecuta al CLICKAR SOBRE uno de nuestros botones
function newPage(e:MouseEvent):void
{
TweenMax.to(e.currentTarget, 0.5, {tint:0x08CBDF});
currentPage = MovieClip(e.currentTarget);
} 