2009-12-24 25 views
0

J'ai un habillage pour une barre de défilement que je veux pouvoir styliser ou définir dynamiquement.Application de styles dynamiques aux habillages dans Flex

<mx:Panel 
    verticalScrollBarStyleName="verticalScrollBarNoArrows"> 
</mx:Panel> 

style.css

.verticalScrollBarNoArrows 
{ 
    upArrowSkin:  ClassReference(null); 
    downArrowSkin: ClassReference(null); 

    trackSkin:  ClassReference(null); 
    thumbSkin:  ClassReference("skins.ScrollBarThumb"); 
} 

ScrollBarThumb.as (extrait)

public class ScrollBarThumb extends Border 
{ 
    [Bindable] 
    private var cornerRadius:Number = 2; 

    [Bindable] 
    private var backgroundColor:uint = 0x222222; 

    [Bindable] 
    private var xOffset:int = -3; 

Je veux être en mesure de définir ces propriétés dans la peau de sorte que la peau peut être différente de style pour chaque composant qui l'utilise.

Comment me suggérez-vous de faire cela?

Répondre

1

Vous devez généralement définir des styles sur une peau styles non comme propriétés:

[Style(name="cornerRadius", type="Number", format="Length", inherit="yes")] 

Puis, en updateDisplayList vous pouvez appeler getStyle("cornerRadius") lorsque vous dessinez la peau.