代码之家  ›  专栏  ›  技术社区  ›  zarko.susnjar

强制Flex 4 Spark Hslider捕捉到特定值?

  •  0
  • zarko.susnjar  · 技术社区  · 14 年前

    在下面的步骤300500100020002500中,基本上我需要滑块来选择300到2500之间的值。

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

    如果没有这个组件,有没有其他可剥的滑块呢?!

    提前谢谢!

    3 回复  |  直到 9 年前
        1
  •  2
  •   Alan Geleynse buhbang    14 年前

    默认HSlider没有此功能。

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

    您可以在这里看到一个如何扩展Flex类的示例: http://blog.flexexamples.com/2008/09/08/extending-the-linkbutton-control-in-flex/

        2
  •  2
  •   Jack Viers    14 年前

    展开,然后在拇指拖动或轨迹上单击“使用” pointToValue

    若要查找单击时的值并舍入到要捕捉到的最近值。这比以前的捕捉行为要好,因为您可以做一些很酷的事情,比如对数捕捉(例如捕捉到101001000)。

        3
  •  2
  •   merv    14 年前

    这里有一个基本的解决方法(可以很容易地放在一个类中),供那些可能需要它的人使用:

    <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)}"/>