0

我对 Flex 比较陌生,并且对 textarea 的滚动条有疑问。基本上,我希望 textarea 有一个看起来像 VSlider 组件的垂直滚动条,而不是像 VSrollBar。(即带有点跟踪器的线,而不是带有框跟踪器的框)。

现在我想出了如何制作一个没有滚动条的 textarea 并将其链接到单独的 VSlider 组件并通过事件进行更新,但我很确定应该有某种方法只使用 textarea 并将其滚动条组件设置为看起来像VSlider 而不是 VScrollBar。

任何人都可以帮忙吗?

4

2 回答 2

1

我通过使用 spark TextArea 和 Vertical Scroll Bar 的皮肤解决了这个问题。此外,您还必须从该皮肤中对每个按钮进行皮肤处理。

<?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,我通过监听事件“手动”与 textarea 滚动同步。不是最顺利的方式,但在这种情况下最容易实现。

于 2012-08-14T13:49:18.267 回答