2010-04-23 204 views
0

我试图制作一个可滚动的框,当鼠标进入并在“包装”区域停留时,“pubsBox”向左移动10个像素。当鼠标停留在元素上时,FLex MouseEvent不会触发

<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认识到鼠标仍然在OVER“包装”并继续触发事件。有任何想法吗?

回答

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函数中,添加逻辑来停止计时器并终止移动过程。

+0

嗨瑞安,你能详细点吗? – 2010-04-23 18:47:49

+0

希望这可以帮助,让我知道如果它仍然不清楚。 – 2010-04-23 20:54:55

+0

哦,等等......我想我可能会知道你在说什么。您正在说要在mouseOver上启动计时器,并且只有在mouseOut时才会停止它。 – 2010-04-26 16:10:11

相关问题