styleManager: проблема с использованием setStyleDeclaration - PullRequest
0 голосов
/ 23 февраля 2011

Эй, ребята .. !!
Я использую styleManager.setStyleDeclaration, чтобы установить объект CssStyleDeclaration для более чем одного экземпляра одного и того же компонента, который используется на разных холстах.
Я хочу установить разные свойстваэтого компонента в различных полотнах, но это не произойдет, поскольку setStyleDeclaration берет имя компонента и задает ему стили глобально, я полагаю.
следующее - это первое cssstyledeclaration :

this.dataTickerOddStyle = new CSSStyleDeclaration();
        this.dataTickerOddStyle.setStyle("fillColors", StringUtilEx.ExtractColorPair(o.DataTicker.Item[0].Background_Fill_Colors));
        this.dataTickerOddStyle.setStyle("fillAlphas", StringUtilEx.ExtractNumberPair(o.DataTicker.Item[0].Background_Fill_Alphas));
        this.dataTickerOddStyle.setStyle("gradientRatio", StringUtilEx.ExtractNumberPair(o.DataTicker.Item[0].Background_Gradient_Ratios));
        this.dataTickerOddStyle.setStyle("cornerRadius", int(o.DataTicker.Item[0].Background_Corner_Radius));
        this.dataTickerOddStyle.setStyle("borderColor", StringUtilEx.ConvertToColor(o.DataTicker.Item[0].Background_Border_Color));
        this.dataTickerOddStyle.setStyle("borderThickness", Number(o.DataTicker.Item[0].Background_Border_Thickness));<br>

Вот как я его использовал:

this.styleManager.setStyleDeclaration("com.GradientCanvas",WidgetStylesheet.instance.dataTickerOddStyle, true);

и еще один cssstyledeclaration :

this.m_zoneBackgroundStyle = new CSSStyleDeclaration();
        this.m_zoneBackgroundStyle.setStyle("fillAlphas", StringUtilEx.ExtractNumberPair(o["Background_Fill_Alphas"]));
        this.m_zoneBackgroundStyle.setStyle("fillColors", StringUtilEx.ExtractColorPair(o["Background_Fill_Colors"]));
        this.m_zoneBackgroundStyle.setStyle("gradientRatio", StringUtilEx.ExtractNumberPair(o["Background_Gradient_Ratios"]));
        this.m_zoneBackgroundStyle.setStyle("borderColor", StringUtilEx.ConvertToColor(o["Background_Border_Color"]));
        this.m_zoneBackgroundStyle.setStyle("borderThickness", Number(o["Background_Border_Thickness"]));
        this.m_zoneBackgroundStyle.setStyle("cornerRadius", Number(o["Background_Corner_Radius"]));

и для этого я использую следующее:

this.fill.styleManager.setStyleDeclaration("com.GradientCanvas", AppStylesheet.instance.m_zoneBackgroundStyle, true);<br>

Обратите внимание, что я использую тот же селектор / компонент .. Пожалуйста, помогите мне с этим .. спасибо заранее

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Я решил проблему. Я раньше использовал Type Selector вместо Class Selector.

0 голосов
/ 24 февраля 2011

(не уверен, что я полностью понимаю, к чему вы клоните .. но ..)

Вы можете установить стиль для одного экземпляра компонента без изменения глобального стиля.

component.setStyle( ... ) 

вместо

CSSStyleDeclaration.setStyle( ... )
...