2010-04-23 50 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

相關問題