Degrafa を使用して horizontalList のスクロールバーをスキニングしようとすると、いくつかの問題が発生します。スクロールバーがまったく表示されません。スキニングなしでスクロールバーが表示されるかどうかを確認しましたが、表示されます。これを行う際に落とし穴はありますか?ここにいくつかのコードがあります:
これは、スキン付きスクロールバーが必要な HorizontalList を定義する場所です
<mx:HorizontalList horizontalScrollBarStyleName="thumbnailScrollbar"/>
ここで、スキンの ClassReference を定義します (矢印が null であるため、表示されません)。
.thumbnailScrollbar
{
up-arrow-skin: ClassReference(null);
down-arrow-skin: ClassReference(null);
trackSkin: ClassReference("ScrollBarTrackSkin");
thumbSkin: ClassReference("ScrollBarThumbSkin");
}
ScrollBarTrackSkin:
<?xml version="1.0" encoding="utf-8"?>
<GraphicBorderSkin xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns="http://www.degrafa.com/2007">
<fills>
<SolidFill id="upFill" color="#FFFFFF" alpha="0.8"/>
</fills>
<geometry>
<RoundedRectangle id="track" x="-8" cornerRadius="16" width="{this.skinWidth}" height="{this.skinHeight}" fill="{upFill}"/>
</geometry>
</GraphicBorderSkin>
ScrollBarThumbSkin:
<?xml version="1.0" encoding="utf-8"?>
<GraphicBorderSkin xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns="http://www.degrafa.com/2007">
<fills>
<SolidFill id="background" color="#333333" alpha=".8"/>
</fills>
<geometry>
<RoundedRectangle id="thumb" cornerRadius="16" width="{this.skinWidth}" height="{this.skinHeight}" fill="{background}"/>
</geometry>
</GraphicBorderSkin>
表示可能な項目よりも多くの項目を HorizontalList に入力しています。前に述べたように、スキニングを削除するとスクロールバーが表示されます。