Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   применение стиля к StyleableTextField (http://www.flasher.ru/forum/showthread.php?t=207648)

djyamato 28.04.2014 16:52

применение стиля к StyleableTextField
 
Здравствуйте
Я слеп или действительно только после override protected function layoutContents применится стиль к StyleableTextField ?

К примеру кусок скина
Код AS3:

override protected function createChildren():void
                {
                        super.createChildren();
 
                        background = new SpriteVisualElement();
                        labelDisplay = StyleableTextField(createInFontContext(StyleableTextField));
 
                        addChild(background);
 
                        background.addChild(arrowDisplay);
 
                        addChild(labelDisplay);
 
                        labelDisplay.selectable = false;
                        labelDisplay.editable = false;
                        labelDisplay.mouseEnabled = false;
                        labelDisplay.multiline = true;
                        labelDisplay.wordWrap = true;
                        labelDisplay.autoSize = TextFieldAutoSize.CENTER;
 
                        tf.align = TextFormatAlign.CENTER;
                        labelDisplay.setTextFormat(tf);
                }

В таком случае пока я не вызову layoutContents, стиль к текст филду не применяется

Если же пишу
Код AS3:

override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
                {
                        setElementPosition(labelDisplay,paddingLR,paddingTB + arrowYOffset);
                }

К нему применяется стиль

вот стиль
Код AS3:

 
@font-face {
                        src: url("assets/fonts/OpenSans_LightItalic.ttf");
                        fontFamily: openSansLightItalicNonCCFFont;
                        embedAsCFF: false;
                }
skins|TextInputPopUpSmallTextSkin{
                        fontFamily:openSansLightItalicNonCCFFont;
                        color:#353434;
                }


PainKiller 07.05.2014 12:23

А где именно в скине происходит парсинг css? В тех скинах что я видел, это делается функцией
Код AS3:

mx.core.UIComponent.getStyle(styleProp:String):*

в вашем коде я её не увидел

alatar 07.05.2014 15:41

Цитата:

Сообщение от djyamato (Сообщение 1164756)
Здравствуйте
Я слеп или действительно только после override protected function layoutContents применится стиль к StyleableTextField ?

Необходимо вызвать labelDisplay.commitStyles() после изменений.
Создавать и применять TextFormat нет необходимости, после вызова commitStyles() свойство align будет взято из стилей.
После создания labelDisplay необходимо добавить:
Код AS3:

labelDisplay.styleName = this;


djyamato 11.05.2014 20:53

Цитата:

Сообщение от PainKiller (Сообщение 1165433)
А где именно в скине происходит парсинг css? В тех скинах что я видел, это делается функцией
Код AS3:

mx.core.UIComponent.getStyle(styleProp:String):*

в вашем коде я её не увидел

labelDisplay.styleName = this;
не дописал тут, а в коде скина это было, спасибо за интерес

Цитата:

Сообщение от alatar (Сообщение 1165450)
Необходимо вызвать labelDisplay.commitStyles() после изменений.
Создавать и применять TextFormat нет необходимости, после вызова commitStyles() свойство align будет взято из стилей.
После создания labelDisplay необходимо добавить:
Код AS3:

labelDisplay.styleName = this;


Спасибо, commitStyles, я как-то про это даже забыл
TextFormat это уже танцы с бубном я начинал


Часовой пояс GMT +4, время: 20:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.