2

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

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

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

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

这会导致整个画布响应翻转事件。效果很好——我只是对它不满意,并且认为必须有更好的方法来实现它。

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

4

3 回答 3

6

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

我经常将 Canvases 用于复杂的多层 UI,并通过 css 将我的默认 Canvas 样式设置为 backgroundAlpha 为 0 和 backgroundColor 为#ffffff,然后,如果我需要画布实际可见,我会调整它的单个 backgroundAlpha 和 backgroundColor 属性.

将图形对象的 alpha 设置为 0 并没有错,这样它仍然可以响应事件,但没有完全“关闭”,我们 AS 编码人员一直都在这样做!

于 2008-11-16T00:09:36.120 回答
0

忽略图像的透明部分怎么样?在我的情况下,我希望只有在图像的可见部分被翻转时才会出现翻转效果,而不是透明部分。这可能吗?

于 2008-12-26T16:12:38.903 回答
-2

你可以这样做:



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

其中“canvas”是 mxml 中画布的 ID。

于 2008-11-15T01:32:45.830 回答