当鼠标停留在元素上时,FLex MouseEvent不会触发

时间:2010-04-23 17:49:20

标签: flex events mouseevent mouseover

我正在尝试制作一个可滚动的框,当鼠标进入并且“包裹”区域的STAYS时,“pubsBox”会向左移动10个像素。

<mx:Canvas id="wrapper" height="80" width="750">
    <mx:HBox id="pubsBox" horizontalGap="10" height="80" width="100%" />
</mx:Canvas>

我的问题是我不确定如何使MouseEvent.MOUSE_OVER正常工作,以识别鼠标仍在该区域上,因此pubsBox应该继续每秒向左移动10个像素。

我知道我必须使用Timer,但我关心的是我无法让Flex认识到鼠标仍然是“封装”并继续触发事件。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用MouseEvent.MOUSE_OUT。假设鼠标仍然在包装器上,直到触发鼠标输出事件。所以基本上你会设置某种循环,它会不断移动pubsBox,直到触发MouseEvent.MOUSE_OUT事件。

<mx:Canvas id="wrapper" height="80" width="750" mouseOver="startMove(e)" mouseOut="stopMove(e)"> <mx:HBox id="pubsBox" horizontalGap="10" height="80" width="100%" /> </mx:Canvas>

在startMove函数中,设置计时器等,以实现移动的逻辑。在stopMove函数中,添加逻辑以停止计时器并终止移动过程。