0

古き良き mx:HSlider で値配列を使用したことを覚えています。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

拡張し、サムドラッグまたはトラッククリックで使用 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 に答える
2

デフォルトの HSlider にはこの機能がありません。

これを実現するには、HSlider を拡張してこの機能を追加するクラスを作成する必要があります。

ここで Flex クラスを拡張する方法の例を見ることができます: http://blog.flexexamples.com/2008/09/08/extending-the-linkbutton-control-in-flex/

于 2010-10-19T21:32:05.930 に答える