2009-12-16 74 views
0

我想指定金額與VScrollBar滾動。 所以在Flex 3中,我們有「lineScrollSize」,但在Flex 4中如何調用此屬性? 我以爲它VScrolBar.stepSize - 但它不會做任何事情。Flex 4和ScrollBar stepSize

有人請幫助我。 我只是想讓我的內容在鼠標滾輪上滾動得更快。

回答

2

查看LayoutBase.getVerticalScrollPositionDelta。您可能想要繼承並覆蓋它!

這是我在我自己的佈局類做的:

override public function getVerticalScrollPositionDelta(navigationUnit:uint):Number { 
    var n:Number=super.getVerticalScrollPositionDelta(navigationUnit); 
    if (navigationUnit==NavigationUnit.DOWN || navigationUnit==NavigationUnit.UP) return 10*n; 
    return n; 
} 
+0

是否有可能禁用鼠標滾輪滾動(我想用鼠標滾輪放大/縮小)? – 2010-04-02 10:11:23

+0

我想你可能會返回零,但這可能是一件骯髒的事情... – Quentin 2010-04-07 20:59:27

+0

要使用此方法通過在名爲UpdatedLayout的類中擴展BasicLayout,您需要添加「」由您的滾輪包含的組。 – 2013-02-07 17:10:25

0

還有就是如何增加stepSize的對鼠標滾輪滾動這裏一個例子: http://forums.adobe.com/message/2783736

你應該能夠取消鼠標滾輪滾動使用此增強功能稍微簡單一些: http://bugs.adobe.com/jira/browse/SDK-26432

鏈接到該錯誤的子任務有一個簡單的代碼示例,您應該可以修改,以防止鼠標滾輪滾動和打電話給你的縮放邏輯來代替:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark"> 
    <fx:Script> 
     <![CDATA[ 
      ... 
      private function mouseWheelChangingHandler(event:FlexMouseEvent):void { 
       // don't scroll by preventing default 
       event.preventDefault(); 

       // instead zoom 
       yourZoomFunction(event.delta); 
      } 
     ]]> 
    </fx:Script> 

    <s:Scroller id="scroller" width="250" height="200" mouseWheelChanging="mouseWheelChangingHandler(event)"> 
     <s:DataGroup id="vp" dataProvider="{getDP()}" itemRenderer="spark.skins.spark.DefaultItemRenderer"> 
      <s:layout> 
       <s:VerticalLayout gap="0" horizontalAlign="justify" /> 
      </s:layout> 
     </s:DataGroup> 
    </s:Scroller> 
</s:Application> 

在此線程的討論也可能對你有用: http://forums.adobe.com/message/3393852#3393852

0

,我想出了一個解決辦法,這需要子類化/擴展滾動條的皮膚。

這種方式,你只需要使用自定義的滾動條,而不是修改每個視口的滾動條內

我把它放在上的Flex SDK的bug,這顯然不應該被忽視的開始與

評論

https://bugs.adobe.com/jira/browse/SDK-17288