0

我想指定用 VScrollBar 滚动的量。所以在 Flex 3 中我们有“lineScrollSize”,但是这个属性在 Flex 4 中是如何调用的呢?我认为它是 VscrollBar.stepSize——但它并没有做任何事情。

有人请帮助我。我只是希望我的内容在鼠标滚轮上滚动得更快。

4

3 回答 3

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;
}
于 2010-02-27T13:45:12.150 回答
0

这里有一个如何增加 mouseWheel 滚动的 stepSize 的示例: http ://forums.adobe.com/message/2783736

通过此增强功能,您应该能够更轻松地取消 mouseWheel 滚动: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

于 2011-01-23T21:17:42.070 回答
0

我想出了一个解决方法,它需要子类化/扩展滚动条的皮肤。

这样你只需要使用自定义滚动条,而不是修改滚动条内的每个视口

我把它放在对 Flex SDK 错误的评论中,这显然不应该被忽视

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

于 2011-05-11T17:22:06.623 回答