Je rencontre des problèmes lorsque je tente d'habiller la barre de défilement sur une liste horizontale avec Degrafa. La barre de défilement n'apparaît pas du tout. J'ai vérifié pour voir si la barre de défilement est censée apparaître sans le skinning, et c'est le cas. Y a-t-il des pièges à faire avec ça? Voici un code:Barre de défilement HorizontalList avec Degrafa
C'est là que je définis le HorizontalList où je veux une barre de défilement à la peau
<mx:HorizontalList horizontalScrollBarStyleName="thumbnailScrollbar"/>
Voici où je définis la ClassReference pour les peaux (null pour les flèches afin qu'ils n'apparaissent) .
.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>
Je suis peuplant le HorizontalList avec plus d'éléments que sont visibles, et comme je l'ai dit avant que la barre de défilement apparaît lorsque je retire le dépeçage.
dérogation updateDisplayList n'est plus nécessaire. GraphicBorderSkin a des variables skinWidth et skinHeight qui remplacent la nécessité de la fonction surchargée – asawilliams
Ok. Toujours, essayez de définir le measuredHeight/measuredWidth. Ou déboguer dans la fonction updateDisplayList pour voir quelles sont les dimensions. – Glenn
vous aviez raison, je recevais 0 pour les deux mesures – asawilliams