2009-12-24 4 views
0

У меня есть скин для большого пальца прокрутки, который я хочу, чтобы иметь возможность стилизовать или установить свойства динамически.Применение динамических стилей для скинов в 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 (фрагмент)

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

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

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

Я хочу, чтобы иметь возможность установить эти свойства в коже, так что кожа может быть стилизовано по-разному для каждый компонент, который его использует.

Как вы предлагаете мне это делать?

ответ

1

Вы должны обычно устанавливать стили на коже в виде стилей не как свойства:

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

Тогда в updateDisplayList вы можете вызвать getStyle("cornerRadius") при рисовании кожи.