Actionscript3.0, Flash

abril 2009

ActionScript 3.0: La propiedad 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.

Jorge says:

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 says:

Madre mía, esto me ha salvado… Pensaba hacer un bucle XD

Gracias!

Pablo says:

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 says:

Perfecto, funciona, si no el puntero cambiaba a cada rato y molesta al usuario. Buena !!!

Jost says:

Tengo un lío con algo creo es similar,trabajo con Flash Cs4 y con actionscript 3 pero soy novato en esto, tengo el diseño de una web sencilla, la he creado en 42 frames, con un menú sencillo que aparece en todos los frames. En cada frame, en una capa diferente, programe los botones para ir a donde necesito y funcionaba bien, para mejorar la parte visual cambie el menú a un menú desplazable, este nuevo menú quedo en un clip de película y los botones están dentro de él, pero ahora la programación no funciona, si programo los botones dentro del clip de película, por su puesto me llevan a frames dentro del clip de película, y si los programo en la escena general, no me reconoce los botones o no se que pasa, lo que necesito es que estos botones dentro del clip me lleven a un frame determinado pero en la ESCENA GENERAL… no se que hacer… de antemano agradezco la atención prestada y la colaboración que me puedan brindar… Gracias miles…

AnaAbregu says:

Un modesto aporte, el campo texto, tiene una propiedad que dice: selectable, sencillamente hay que colocarlo a false.
el Script: texto.selectable=false;