Comunidad de diseño web y desarrollo en internet online

Reconocer nombre de instancia a la que le di clic

Citar            
MensajeEscrito el 11 Mar 2010 07:37 pm
Que tal compas..

Tengo un movieClip que funciona como botón (lo llamé mc_boton), dentro de éste mc_boton tengo 2 moviclips más que hacen el efecto de animación del boton (mc1, mc2). En la escena principal, pongo una instancia de mc_boton y la nombro boton1.

Le agrego a boton1 un evento de clic y sin embargo pregunto en la función onClick si el nombre de instancia de lo que le di clic es "boton1" y nomás no me lo reconoce. Antes me reconoce mc1 y mc2 y hasta un nombre de instance98. ¿Cómo hacerle para reconocer el nombre de instancia del movieclip puesto en escena y no los moviclips que lo conforman?

Mi código es.

Código :

boton1.addEventListener(MouseEvent.CLICK, onClick);

function onClick(event:MouseEvent):void{
   trace(event.target.name);       // << me imprime mc1, mc2 o instance98, menos boton1
}

Por javmanson

16 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Mar 2010 08:39 pm
Hace rato no trabajo con Flash pero con Flex retornó el valor esperado, que tal si pruebas

Código ActionScript :

trace(event.target.id);


tuve el mismo resultado "boton1" en ambas ocaciones pero...

Por rubencho176

Claber

301 de clabLevel

3 tutoriales

 

Colombia

firefox
Citar            
MensajeEscrito el 12 Mar 2010 07:22 am
Jav, en AS.3 en principio, la propiedad "name" NO tiene nada que ver con el "nombre de instancia". En AS.3 el nombre de instancia se "traduce" como una variable que hace referencia a un MC. Puedes escribir

Código ActionScript :

boton1.name="nombre_boton1"
boton1.mc1.name="nombre_mc1"
boton1.mc2.name="nombre_mc2"


Por otra parte debemos distinguir entre "target" y "currentTarget". Cuando tenemos un MC "boton1" y dentro otros MCs "mc1" y "mc2" un añadimos el evento MouseEvent.CLICK a "boton1":
Si "pinchamos" dentro de "mc1"
event.target será "mc1"
event.currentTarget será "boton1"
Así podríamos usar event.currentTarget en lugar de event.target si es lo que queremos.

Si le damos la propiedad "mouseEnabled" a false a "mc1" (vamos, le decimos que "mc1" no genere ningún evento CLICK)

Código ActionScript :

boton1.mc1.mouseEnabled=false

Esto no ocurrirrá, tanto event.target como event.currentTarget será "boton1".
No sé si lo he aclarado un poco

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Mar 2010 03:04 pm
Perfecto... claro que si lo has aclarado Eliseo. Muchas gracias a los dos. La verdad es que no me he metido con Flex pero espero hacerlo pronto. Este foro vale oro. Gracias por todo, si funcionó. :D

Por javmanson

16 de clabLevel



 

firefox

 

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