我记得在旧的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" />
如果没有这个组件,那么还有其他可换肤滑块吗?!
提前致谢!
答案 0 :(得分:2)
默认HSlider没有此功能。
要实现此目的,您需要创建一个扩展HSlider并添加此功能的类。
您可以在此处查看如何扩展Flex类的示例:http://blog.flexexamples.com/2008/09/08/extending-the-linkbutton-control-in-flex/
答案 1 :(得分:2)
延伸,并在拇指拖动或跟踪单击使用
pointToValue
找到您点击的值并舍入到您希望其捕捉到的最接近的值。这比旧的快照行为更好,因为你可以做一些很酷的事情,比如对数捕捉(例如对齐1,10,100,1000)。
答案 2 :(得分: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)}"/>