Comunidad de diseño web y desarrollo en internet online

Cambiar el nombre de un movieclip por event.target.name

Citar            
MensajeEscrito el 09 Mar 2010 08:53 pm
Perdon por la pregunta pero estoy empezando con AS3...

Tengo un Movieclip que funciona como un boton (porque tiene una animación). El problema es que quiero que al pasarle el puntero del mouse realice la animación. La animación en sí, esta dentro de otro Movieclip (con un nombre de instancia "spin_mc") que se encuentra dentro del botón. Todo funciona correctamente si hago lo siguiente

Código :

boton_mc.addEventListener(MouseEvent.ROLL_OVER, onRollOver1);

function onRollOver1(event:MouseEvent):void {
   boton_mc.spin_mc.gotoAndPlay("Over");
}


Pero, ya que quisiera poner 3 botones mas. Queria cambiar el código en mi funcion para hacerlo mas genérico quedando así...

Código :

function onRollOver1(event:MouseEvent):void {
   event.target.name.spin_mc.gotoAndPlay("Over");
}


Pero me manda el siguiente error...

ReferenceError: Error #1069: No se encontró la propiedad spin_mc en String y no hay ningún valor predeterminado.

Sé de antemano que event.target.event es un String, pero no encuentro cómo hacer la conversión. Intenté poner MovieClip(event.target.name).spin_mc.gotoAndPlay("Over"), pero nomás nada!.. Gracias por la ayuda de antemano y espero poder contestar dudas en un futuro no tan largo. Gracias :)

Por javmanson

16 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2010 09:38 pm
la propiedad name es del tipo String , tu le indicas que valla a un frame determinado a un String cosa que no tiene sentido , solo usa event.target.movieClipAnidado.gotoAndPlay(..).

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 11 Mar 2010 08:41 am

javmanson escribió:


Sé de antemano que event.target.event es un String, pero no encuentro cómo hacer la conversión.

Creo que lo has liado.
event.target es de tipo Object
event.target.name, efectivamente es de tipo String

Debería ser, simplemente

Código ActionScript :

function onRollOver1(event:MouseEvent):void {
   MovieClip(event.target.spin_mc).gotoAndPlay("Over");
}

Vamos, tenemos que hacer una "conversión de cast" a event.target.spin_mc para decir que es un MovieClip, de ese modo podremos usar el método gotoAndPlay.
También se suele hacer en dos pasos

Código ActionScript :

function onRollOver1(event:MouseEvent):void {
   var mc:MovieClip=event.target.spin_mc as MovieClip
   mc.gotoAndPlay("Over");
}


Dos cosas tenemos que tener claras.
1.-Usamos la conversión de cast para que el "compilador" sepa que es un MovieClip y no dé error
2.-Al ser un Objeto "event.target" está permitidas "propiedades" (o variables)

Por Eliseo2

710 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.