transparente boton flex rollover

boton - Forma correcta en Flex para hacer que un panel transparente responda a los eventos de rollOver()



jpanel transparente java (3)

Tengo una aplicación Canvas en Flex que tiene elementos dentro que cubren solo el 50% del área del lienzo principal.

Quiero que el lienzo responda a los eventos rollOver para todo el área, y no solo al área cubierta por los elementos que contiene.

He estado estableciendo los siguientes atributos para lograr esto:

<mx:Canvas backgroundColor="white" backgroundAlpha=".01" rollOver="rollOver(event)">...

Esto hace que todo el lienzo responda a los eventos rollOver. Funciona de maravilla, simplemente no estoy contento con eso y creo que debe haber una mejor manera de lograrlo.

¿Hay alguna manera de forzar los eventos del mouse para que actúen en todo el área de un UIComponent?


Podrías hacer esto:

import flash.event.MouseEvent; ... canvas.addEventListener(MouseEvent.ROLL_OVER,function(event:MouseEvent):void { ... });

donde "lienzo" es el ID del lienzo en su mxml.


Lo que está haciendo es perfectamente aceptable, aunque no es necesario usar el valor alfa arbitrario de 0.01, puede configurar su backgroundAlpha como simple 0.

Normalmente utilizo Canvas para interfaces de usuario complicadas de múltiples capas y configuré mi estilo de Canvas predeterminado a través de css para tener un backgroundAlpha de 0 y un backgroundColor de #ffffff; luego, si necesito un lienzo para ser realmente visible, ajusto sus propiedades backgroundAlpha y backgroundColor .

No hay nada de malo en establecer el valor alfa de un objeto gráfico para que siga respondiendo a los eventos, pero no se haya "desactivado" por completo, ¡nosotros los programadores lo hacemos todo el tiempo!


¿Qué pasa si se ignoran las secciones de transparencia de una imagen? En mi caso, me gustaría que el efecto de rodar se produzca solo si la parte visible de una imagen se desplaza, no la parte transparente. es posible?