Tôi không có một hướng dẫn đầy đủ cho bạn, nhưng đây là vài bước đầu tiên trong việc tạo ra một thành phần tùy chỉnh hslider . Hy vọng nó giúp.
Bắt đầu bằng cách nhìn vào da hslider mà được tạo thành từ 2 phần, một ngón tay cái và một ca khúc:
<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" />
Bây giờ, tạo một làn da mới, ngoại trừ cung cấp cho nó hai nút:
<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" />
Tạo một thành phần mới mở rộng HSlider và gọi nó là một cái gì đó giống như MultiButtonSlider. Ghi đè hàm partAdded() và lấy tham chiếu đến thumb2 khi được thêm vào.
override protected function partAdded(partName:String, instance:Object):void{
if(partName == "thumb2"){
thumb2 = instance as Button;
}
}
Hy vọng điều này sẽ giúp bạn đi đúng hướng. Đừng quên đặt MultiButtonSlider.skinClass = "YourNewSkin"
Các bước tiếp theo sẽ làm cho nó có thể kéo và chuyển đổi điểm của nó thành giá trị. Xem hàm HSlider.pointToValue().