Je n'ai pas un tutoriel complet pour vous, mais voici les premières étapes de création d'un composant HSlider personnalisé . J'espère que cela aide.
Commencez par regarder la peau HSlider qui se compose de 2 parties, un pouce et une piste:
<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" />
Maintenant, créez une nouvelle peau, sauf lui donner deux boutons:
<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" />
Créez un nouveau composant qui étend HSlider et l'appelle quelque chose comme MultiButtonSlider. Substituez la fonction partAdded() et saisissez une référence à thumb2 quand elle est ajoutée.
override protected function partAdded(partName:String, instance:Object):void{
if(partName == "thumb2"){
thumb2 = instance as Button;
}
}
Espérons que cela vous amène dans la bonne direction. N'oubliez pas de définir MultiButtonSlider.skinClass = "YourNewSkin"
Les prochaines étapes consisteront à le faire glisser et à convertir son point en valeur. Voir la fonction HSlider.pointToValue().