Flex中的正确方法是使透明面板响应rollOver()事件

Sim*_*ver 2 apache-flex rollover

我在Flex应用程序中有一个Canvas,其中包含的项目仅覆盖主画布区域的约50%.

我希望画布响应rollOver整个区域的事件,而不仅仅是内部项目所覆盖的区域.

我一直在设置以下属性来实现这一目标:

<mx:Canvas backgroundColor="white"
backgroundAlpha=".01"
rollOver="rollOver(event)">...
Run Code Online (Sandbox Code Playgroud)

这会导致整个画布响应rollOver事件.它运作得很好 - 我对此并不满意,并认为必须有更好的方法来实现它.

有没有办法强制鼠标事件作用于UIComponent的整个区域?

def*_*eta 6

你正在做的事情是完全可以接受的,虽然不需要使用0.01的任意alpha值,你可以将它的backgroundAlpha设置为一个简单的0.

我经常使用Canvases进行复杂的多层UI,并通过css设置我的默认Canvas样式,使backgroundAlpha为0,背景颜色为#ffffff,然后,如果我需要一个实际可见的画布,我调整它的个别backgroundAlpha和backgroundColor属性.

将图形对象的alpha设置为0没有任何问题,因此它仍然可以响应事件但尚未完全"关闭",我们AS编码器会一直这样做!