2010-10-19 24 views
0

我記得在舊的mx上使用values數組:HSlider,有沒有解決s的問題:HSlider?Force Flex 4 Spark Hslider捕捉特定值?

基本上我需要滑塊來選擇300和2500之間的值,在以下步驟300,500,1000,2000,2500。

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

如果不是這個組件,那裏有沒有其他的皮膚滑塊?!

在此先感謝!

回答

2

默認的HSlider沒有這個功能。

要做到這一點,您需要創建一個擴展HSlider的類並添加此功能。

你可以看到如何擴展Flex的類此的例子:http://blog.flexexamples.com/2008/09/08/extending-the-linkbutton-control-in-flex/

+0

OMG,有時候我真的很討厭的Adobe :(是的,我還挺有這樣的未來,但希望在社區的某個地方有一些經過驗證的解決方案... – 2010-10-19 21:42:13

+0

是的,Adobe表示他們的立場是添加所需的內容,而不是添加便利方法,因此不得不自己動手做這件事。祝好運找到另一種解決方案,但我的猜測是你將不得不自己寫。 – 2010-10-19 21:46:09

2

擴展,並在拇指拖動或跟蹤點擊使用 pointToValue

找到自己的價值點擊並四捨五入到最接近您希望它捕捉的值。這比舊的快照行爲更好,因爲你可以做一些很酷的事情,比如對數捕捉(例如捕捉到1,10,100,1000)。

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