0

我记得在旧的 mx:HSlider 上使用了 values 数组,s:HSlider 有什么解决方法吗?!

基本上我需要滑块在以下步骤 300,500,1000,2000,2500 中选择 300 到 2500 之间的值。

<s:HSlider id="franchiser" 
   value="1500" 
   skinClass="components.HorizontalSlider" x="0" y="0" 
   minimum="300" maximum="2500" />

如果没有这个组件,是否有任何替代的可换肤滑块?!

提前致谢!

4

3 回答 3

2

默认的 HSlider 没有此功能。

为此,您需要创建一个扩展 HSlider 并添加此功能的类。

您可以在此处查看如何扩展 Flex 类的示例:http: //blog.flexexamples.com/2008/09/08/extending-the-linkbutton-control-in-flex/

于 2010-10-19T21:32:05.930 回答
2

扩展,并在拇指拖动或轨道点击使用 pointToValue

找到您单击的值并四舍五入到您希望它捕捉到的最接近的值。这比旧的捕捉行为要好,因为你可以做一些很酷的事情,比如对数捕捉(例如捕捉到 1,10,100,1000)。

于 2011-04-15T15:24:06.563 回答
2

对于那些可能需要它的人来说,这是一个基本的解决方法(可以很容易地放在一个类中):

<fx:Script>
  <![CDATA[

    import mx.collections.ArrayCollection;

    [Bindable]
    private var sliderValues:ArrayCollection =
      new ArrayCollection([300,500,1000,2000,2500]);

  ]]>
</fx:Script>
...
<s:HSlider id="sldr"
  minimum="0" maximum="{sliderValues.length - 1}"
  stepSize="1" snapInterval="1"
  dataTipFormatFunction="{
    function():String
    {
      return sliderValues[sldr.value].toString();
    }}"/>

<s:Label text="{sliderValues.getItemAt(sldr.value)}"/>
于 2011-04-15T22:54:11.480 回答