今、Hsliderのつまみをもう少し大きいものにしたいなと思って、調べていたらスキンでなんとかなるみたいだったので、メモ。

参考になった記事
[Flex2][AS3]SliderのThumbが言うことを聞かない件

要約するとスキンでHSliderのつまみは、変更できるけど定義されているMXMLがサイズが固定されていて、大きさが変更できない。クラスファイルで拡張してつまみの大きさを調整したということらしい。

つまみの大きさの固定は、あまり変更をしないであろうという想定だったのかもしれない。それに全体のデザインを考えて小さいほうがいいと考えたのことも考えられる。

参考ソースコード

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" width="600" height="200">
<mx:Style>
HSlider{
thumbUpSkin: Embed(source="/assets/sliderThumb.png");
thumbOverSkin: Embed(source="/assets/sliderThumb_over.png");
thumbDownSkin: Embed(source="/assets/sliderThumb_down.png");
thumb-disabled-skin: Embed(source="/assets/sliderThumb_disable.png");
}
</mx:Style>
<mx:HSlider width="100%" height="100%" sliderThumbClass="FixedSliderThumb"/>
</mx:Application>

HSliderにクラス変数をセットする。

package{
import mx.controls.sliderClasses.SliderThumb;
import mx.core.mx_internal;
 use namespace mx_internal;

public class FixedSliderThumb extends SliderThumb
{
override protected function measure():void{
super.measure();
measuredWidth = currentSkin.measuredWidth;
measuredHeight = currentSkin.measuredHeight;
}
}
}

これでつまみのカスタマイズができるようだ。
今作っているもので試してみようと思う。

http://d.hatena.ne.jp/c9katayama/20080604/1212563971http://d.hatena.ne.jp/c9katayama/20080604/1212563971

関連記事