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

この機能強化により、マウスホイールのスクロールを少し簡単にキャンセルできるはずです: 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 に答える