在Flex中将动态样式应用于外观

时间:2009-12-24 00:31:11

标签: flex styling skinning

我有一个滚动条拇指的皮肤,我希望能够动态设置或设置属性。

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

的style.css

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

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

ScrollBarThumb.as(摘录)

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

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

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

我希望能够在皮肤中设置这些属性,以便为使用它的每个组件设置不同的皮肤样式。

你怎么建议我这样做?

1 个答案:

答案 0 :(得分:1)

您通常应将皮肤上的样式设置为样式而不是属性:

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

然后在updateDisplayList中,您可以在绘制皮肤时调用getStyle("cornerRadius")