2011-03-07 115 views
7

我有延伸的星火列表中的一個組成部分,當我使用滾動鼠標滾輪它滾動太多一氣呵成。我已經嘗試尋找處理List類和VerticalLayout類中的鼠標滾輪滾動的處理程序來覆蓋,但我找不到它。的Flex星火列表鼠標滾輪滾動速度

有另一種方式我應該改變這種情況,還是我失去了一些東西?

+0

如果你的問題是隻能用我的鼠標滾輪:我有同樣的問題,仍然沒有解決:(http://stackoverflow.com/questions/3584127/scrolling-interval-in-一個火花列表與 - tilelayout-過大尺寸的同時,用鼠標-WH – hering 2011-03-07 13:44:31

+0

耶它只是鼠標滾輪滾動時,儘可能多的移動約3倍爲正常滾動,因此看起來不協調。否則其精...使用MX列表我所能做的覆蓋保護功能mouseWheelHandler()來改變速度,所以我認爲有好多東西火花列表一樣... – 2011-03-07 14:44:28

回答

11

MouseEvent.MOUSE_WHEEL的「增量」屬性定義多少行將由一個車輪滾動滾動。您可以嘗試在MOUSE_WHEEL處理程序中更改它(在捕獲階段)。例如,下面的代碼將線由行滾動:

 protected function init(event:FlexEvent):void 
     { 
      list.addEventListener(MouseEvent.MOUSE_WHEEL, list_mouseWheelHandler, true); 
     } 

     protected function list_mouseWheelHandler(event:MouseEvent):void 
     { 
      event.delta = event.delta > 0 ? 1 : -1; 
     } 

+0

我已經嘗試過,處理程序被調用太晚所以沒有效果在滾動,但無論如何感謝:)我想知道的是哪個函數重寫該t當他聽到MouseEvent.MOUSE_WHEEL – 2011-03-08 13:30:27

+1

時,他列表正在調用您已添加處理程序並將capture設置爲false。如果添加捕獲設置爲true的處理程序 - >它將在之前調用。這將解決你的問題,你不需要重寫任何東西。至於哈勒:檢查VScrollBar-> mouseWheelHandler(但老實說,你不需要覆蓋它)。再次嘗試完全按照上面的示例訂閱MOUSE_WHEEL事件。 – 2011-03-08 13:44:39

+0

謝謝!那確實能解決問題,對不起我昨天沒有注意到。真的是在屏幕之外,所以我認爲這是我已經嘗試過了......非常感謝:) – 2011-03-09 09:13:28

0

的「horizo​​ntalLineScrollSize」和「verticalLineScrollSize」屬性決定多少像素當用戶選擇滾動條箭頭來滾動。 「verticalLineScrollSize」屬性還控制使用「鼠標滾輪」時的滾動量。默認值是5個像素。 的「horizo​​ntalPageScrollSize」和「verticalPageScrollSize」屬性決定多少像素,當用戶選擇了「滾動條軌道」來滾動。默認值是20像素。

更多細節:http://livedocs.adobe.com/flex/3/html/help.html?content=containers_intro_4.html