0

私は Flex の初心者で、テキストエリアのスクロールバーに問題があります。基本的に、VSrollBar ではなく、VSlider コンポーネントのように見える垂直スクロールバーを textarea に持たせたいと思います。(つまり、ボックス トラッカーを使用したボックスではなく、ドット トラッカーを使用したライン)。

今、スクロールバーのないテキストエリアを作成し、それを別のVSliderコンポーネントにリンクしてイベントを介して更新する方法を理解しましたが、テキストエリアのみを使用してそのスクロールバーコンポーネントを次のように設定する方法があるはずですVScrollBar の代わりに VSlider。

誰でも助けることができますか?

4

2 に答える 2

1

この問題は、sparkTextAreaとVerticalScrollBarのスキンを使用して解決しました。また、このスキンから各ボタンをスキンする必要があります。

<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark"
             xmlns:fb="http://ns.adobe.com/flashbuilder/2009">
    <fx:Metadata>
        <![CDATA[ 
            [HostComponent("spark.components.VScrollBar")]
        ]]>
    </fx:Metadata> 
    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
        <s:State name="inactive" />
    </s:states>
    <s:Group top="2" horizontalCenter="0" bottom="2" left="2" right="2">
        <s:Button id="track" top="8" bottom="8" width="10" focusEnabled="false" 
                  skinClass="skins.scroller.VerticalScrollBarTrackSkin"/>
        <s:Button id="thumb" horizontalCenter="0" focusEnabled="false" visible.inactive="false"
                  skinClass="skins.scroller.VerticalScrollBarThumbSkin" buttonMode="true"/>
        <s:Button id="decrementButton" top="0" enabled.inactive="false"
                  focusEnabled="false" horizontalCenter="0" buttonMode="true"
                  skinClass="skins.scroller.VerticalScrollBarDecrementButtonSkin"/>
        <s:Button id="incrementButton" bottom="0" enabled.inactive="false"
                  focusEnabled="false" horizontalCenter="0" buttonMode="true"
                  skinClass="skins.scroller.VerticalScrollBarIncrementButtonSkin"/>
    </s:Group>
</s:SparkSkin>

次に、アプリケーションにスタイルを適用する必要があります。

s|VScrollBar
{
    skinClass:ClassReference("skins.scroller.VerticalScrollBarSkin");
}
于 2012-08-02T10:59:53.750 に答える
0

この場合、VSlider を使用することになりました。VSlider は、イベント リスナーを介してスクロールするテキストエリアと「手動で」同期しました。最もスムーズな方法ではありませんが、この場合は最も簡単に実装できます。

于 2012-08-14T13:49:18.267 に答える