У меня нет полного руководства для вас, но вот первые несколько шагов по созданию пользовательского компонента hslider. Надеюсь, это поможет.
Начните с рассмотрения скина hslider, который состоит из 2 частей, большого пальца и дорожки:
<s:Button id="track" left="0" right="0" top="0" bottom="0" minWidth="33" width="100"
skinClass="spark.skins.spark.HSliderTrackSkin" />
<s:Button id="thumb" top="0" bottom="0" width="11" height="11"
skinClass="spark.skins.spark.HSliderThumbSkin" />
Теперь создайте новый скин, за исключением двух кнопок:
<s:Button id="track" left="0" right="0" top="0" bottom="0" minWidth="33" width="100"
skinClass="spark.skins.spark.HSliderTrackSkin" />
<s:Button id="thumb" top="0" bottom="0" width="11" height="11"
skinClass="spark.skins.spark.HSliderThumbSkin" />
<s:Button id="thumb2" top="0" bottom="0" width="11" height="11"
skinClass="spark.skins.spark.HSliderThumbSkin" />
Создайте новый компонент, расширяющий HSlider, и назовите его чем-то вроде MultiButtonSlider. Переопределите функцию partAdded () и получите ссылку на thumb2 при ее добавлении.
override protected function partAdded(partName:String, instance:Object):void{
if(partName == "thumb2"){
thumb2 = instance as Button;
}
}
Надеюсь, это направит вас в правильном направлении. Не забудьте установить MultiButtonSlider.skinClass = "YourNewSkin"
Следующими шагами будет сделать его перетаскиваемым и преобразовать его точку в значение. См. Функцию HSlider.pointToValue ().