我正在尝试制作一个可滚动的框,当鼠标进入并且“包裹”区域的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认识到鼠标仍然是“封装”并继续触发事件。有什么想法吗?
答案 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函数中,添加逻辑以停止计时器并终止移动过程。