Comunidad de diseño web y desarrollo en internet online

Como detectar el objetivo sobre el que se ha hecho click.

Citar            
MensajeEscrito el 19 Mar 2008 11:35 pm
Buen día.

Me gustaría saber como hacer para detectar el nombre de la instancia (o clase) a la que se ha hecho click en el stage sin tener que añadir una función a cada instancia.

Es decir, si tengo una serie de botones en el stage, puedo obtener el nombre de cada instancia de estos botones solo haciendo click sobre ellos?

Espero haberme explicado. Gracias.

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Mar 2008 01:57 pm
hola creo que buscas algo asi:

Código :

function detectarClip(e:MouseEvent):void {
   var clip:*=e.target;
   trace(clip);
}
addEventListener(MouseEvent.MOUSE_DOWN,detectarClip);


no se le pone stage.addEvent... porque sino te detecta solo el stage.
saludos.

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox
Citar            
MensajeEscrito el 21 Mar 2008 04:10 am
Muchisimas gracias. Es exactamente lo que buscaba.

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Mar 2008 10:29 pm
Estaba probando el script y acabo de darme cuenta que no detecta los clips que han sido cargados mediante action script.
Tengo un swf en el que cargué otro swf externo. En el swf principal coloqué :

function detectarClip(e:MouseEvent):void {
var clip:*=e.target;
trace(clip.name);


pero parece que solo se ejecuta si le doy click a un MovieClip creado en el swf principal. No devuelve nada al hacer click en los clips externos.
Alguna sugerencia?

El codigo que uso para cargar el swf externo es:

var contMapa:MovieClip;
var loaderMapa:Loader = new Loader();
loaderMapa.contentLoaderInfo.addEventListener(Event.INIT, doneLoading);
loaderMapa.load( new URLRequest("mapa_general.swf") );

function doneLoading(evt:Event):void {
contMapa = MovieClip(loaderMapa.content);
stage.addChildAt(contMapa, 0);
alphaContenido(contMapa);
}

function alphaContenido(contenido):void {
var mapaAlpha:Tween = new Tween(contenido, "alpha", None.easeNone, 0, 1, 1, true);
}

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Mar 2008 10:33 pm
Concretamente lo que necesito es cargar distintos swf en una pelicual principal en la que se encuentra escrita una funcion. Luego, detectar sobre que MovieClip he hecho click para así ejecutar una función con una variable que cambia de acuerdo al clip clickeado.

Gracias por la colaboración que me puedan brindar.

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Mar 2008 12:18 am
Si coloco el script en el swf cargado externamente alli obtendría la variable que necesito, pero ... como hago para acceder a esta variable desde la película principal y así poder ejecutar la función pasandole esta variable?

Este AS3 está complicadísimo :S

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Mar 2008 01:55 pm
hola., como estas. en tal caso lo que te recomiendo es que cada ves que gerenres una nueva pelicula
le pongas un listener propio. se podria agregar a la funcion que tenes por ejemplo..

Código :

function doneLoading(evt:Event):void {
   contMapa = MovieClip(loaderMapa.content);
   stage.addChildAt(contMapa, 0);
   contMapa.addEventListener(MouseEvent.MOUSE_DOWN,detectarClip)
   alphaContenido(contMapa);
}


ojo, no lo prove. pero asi lo hago yo siempre. a mi me funca,. :wink:

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox
Citar            
MensajeEscrito el 27 Mar 2008 02:08 am
Muchas gracias por la ayuda. estoy en medio de un proyecto que requiere mucha programación y no soy programador. Así que esto del AS3 me está dando duro :)

Por leonfcs

10 de clabLevel



Genero:Masculino  

firefox

 

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