lenguaje - Cursores Flash/Flex
as3 rpdr (2)
Trabajo en una aplicación Flex que carga recursos Flash externos creados en CS3. Acabo de leer cómo puedo usar la clase Flex mx.managers.CursorManager para cambiar el cursor del mouse de forma explícita. Pero lo que idealmente me gustaría hacer es establecer una propiedad del cursor del mouse en algunos elementos en el Flash SWF cargado, de modo que cuando el cursor pasa sobre este elemento, el cursor cambia automáticamente sin que tenga que responder a los eventos del mouse.
¿Es posible? ¿Flash admite esto en DisplayObject o algo así?
Parece que Flash SWF me está anulando. Algunos objetos muestran automáticamente el cursor de mano con el mouse encima, y no veo la manera de desactivarlo en un DisplayObject.
Para establecer el cursor "Mano", tan pronto como el mouse se desplace sobre un elemento, debe especificar estas propiedades:
<mx:VBox
useHandCursor="true"
mouseChildren="false"
buttonMode="true">
Sin embargo, esto solo funciona para el cursor de Mano. También cuide el atributo requerido MouseChildren . Debe establecer esto en falso para lograr el cursor para todos los elementos contenidos o debe especificar los atributos useHandCursor y buttonMode para todos los elementos. Sin embargo, el efecto secundario de la configuración de mouseChildren en falso es que todos los eventos de mouse ( mouseOver , mouseOut , click , ...) en los elementos secundarios ya no funcionarán.
En caso de que quiera usar un cursor diferente al cursor de la mano, me temo que solo tiene dos posibilidades:
- Reemplace el cursor de mano estándar por el cursor
- Utilice los eventos mouseOver y mouseOut para establecer el cursor mediante programación.
En cualquier objeto heredado de Sprite cuyas propiedades buttonMode y useHandCursor sean ambas verdaderas, obtendrás un cursor de mano por defecto cuando lo des labre. Algunos objetos hacen esto por defecto, correcto; Button y LinkButton son ejemplos que probablemente hayas notado. Simplemente establecer useHandCursor en false en cualquiera de estos componentes deshabilitará el cursor de mano con la suficiente facilidad, incluso cuando su propiedad buttonMode (que es responsable de enviar los eventos de clic) se establece en verdadero.
Sin embargo, si desea establecer el cursor en cualquier otra cosa en mouseOver, tendrá que responder a los eventos del mouse; no hay forma de evitar eso. Dependiendo de su objetivo de diseño, podría romper ese trabajo de alguna manera, tal vez heredando de algún otro objeto y luego anulando su comportamiento predeterminado, pero de alguna forma u otra, el tiempo de ejecución necesita saber que desea que se manejen esos eventos del mouse.