ActionScript 3.0: La propiedad mouseChildren

Etiquetas: mouseChildren

Una de las trampas que me encontré cunado empecé con Actionscript 3.0 era esta:

-Creaba un MovieClip con un campo de texto dinámico dentro (por ejemplo para el botón de un menú).

-Le añadía un evento de ratón y ponia su propiedad buttonMode como true.

Resultado: no se veía el handCursor (la mano típica al hacer over sobre un botón) cuando ponía el ratón encima.

En aquel momento, para solucionar el inconveniente (estaba haciendo unos cambios delante del cliente), puse un botón transparente dentro del MovieClip, por encima del resto de elementos, de tal manera que al hacer over sobre el clip se hacia over sobre el botón y se mostraba el handCursor. Mas tarde, pude investigar un poco, y descubrí que lo que pasaba era que el campo de texto dentro del clip "interfería" con los eventos de ratón, y por eso no se mostraba "la mano".

Para solucionarlo, podemos utilizar la propiedad mouseChildren de los DisplayObjectContainer, que determina si los elementos secundarios de un objeto están habilitados para ratón. Su valor predeterminado es true.

Comentarios:
Jorge dijo:
Muy bueno tio.Lo que hago yo en estos casos es desactivar el texto del evento de ratón con la propiedad mouseEnabled = false. Pero claro, si tengo varios hijos en un movieClip, debería hacerlo en todos ellos mientras que, con mouseChildren, supongo que sólo tengo que escribirlo una vez para todos los hijos de ese movieClip.
Juanlu001 dijo:
Madre mía, esto me ha salvado... Pensaba hacer un bucle XD Gracias!
Pablo dijo:
esto está buenísimo pero hay alguna forma q aparezca la manito cuando estas sobre un textField? pq me veo obligado a meterlo siempre dentro de un mc para poder darle el método buttonMode = true... Gracias la página está de 10!!!
Enrique dijo:
Perfecto, funciona, si no el puntero cambiaba a cada rato y molesta al usuario. Buena !!!
Dejar un comentario:
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web: