Flex 3 - текстовое управление мерцает при изменении стилена - PullRequest
0 голосов
/ 24 мая 2011

У меня мерцающая проблема с текстовым элементом управления.

Вот контекст:
У меня есть заголовок, представленный текстовым элементом управления (без метки, потому что он должен быть в состоянииотображается в несколько строк).Когда пользователь переворачивает заголовок, текст должен быть подчеркнут.

Что я сделал:
Я установил для слушателей события опрокидывания и разворачивания заголовка примерно так:

    private function titleHandler(e : MouseEvent) : void {
        switch(e.type) {
            case MouseEvent.ROLL_OVER: 
                _title.styleName = 'accessoriesTitleHover'; 
                break;
            case MouseEvent.ROLL_OUT: 
                _title.styleName = 'accessoriesTitle'; 
                break; 
        }
    }

Проблема: заголовок мигает каждый раз, когда имя стиленаизменяется (я бы даже сказал, что заголовок исчезает и появляется снова)

Альтернативные решения, которые я пробовал:

  • изменение свойства подчеркивания с помощью setStyle (не работает)
  • определение .accessoriesTitle и .accessoriesTitle: стили наведения в CSS, но наведение не работает = (

Кто-нибудь знает решение или обойти эту мерцающую вещь?

Спасибо за ваше время и помощь !!:)

С уважением,
BS_C3


Извините за задержку, вот объявление обоих стилей:

.accessoriesTitle{
    font-size: 13pt;
    text-decoration: none;
    leading: 1pt;
}

.accessoriesTitleHover{
    font-size: 13pt;
    text-decoration: underline;
    leading: 1pt;
}

С уважением

Ответы [ 2 ]

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

Я нашел «хак», чтобы решить эту проблему.
Без хака, казалось бы, текст был очищен перед повторной визуализацией с подчеркнутым стилем.То же самое происходит, когда текст переходит от подчеркнутого стиля к стилю оформления без текста.

Текст либо менял свой размер (с текущего размера на 0, а затем на новый размер), либо очищал содержимое перед повторной его отрисовкой.
Итак, я установил высоту текста и вот что я получаю:1005 *

private function titleHandler(e : MouseEvent) : void {
    switch(e.type) {
        case MouseEvent.ROLL_OVER: 
            _title.height = _title.height;
            _title.styleName = 'accessoriesTitleHover';  
            break;
        case MouseEvent.ROLL_OUT:  
            _title.styleName = 'accessoriesTitle';  
            break; 
    }
}

И все работает отлично:)

Спасибо за ваше время.С уважением,

BS_C3

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

попробуйте это

 private function titleHandler(e : MouseEvent) : void {
    switch(e.type) {
        case MouseEvent.ROLL_OVER: 
            _title.setStyle('styleName', 'accessoriesTitleHover'); 
            break;
        case MouseEvent.ROLL_OUT: 
            _title.setStyle('styleName', 'accessoriesTitle'); 
            break; 
    }
}

Если это не работа, немедленно ответьте.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...