Flex 3 - 更改stylename时文本控件闪烁

时间:2011-05-24 08:57:45

标签: flex text flex3 styles

我的文本控件存在闪烁问题。

以下是上下文:
我有一个标题,由文本控件表示(没有标签,因为它需要能够显示在几行中)。当用户翻阅标题时,文本必须加下划线。

我做了什么:
我已经将标题的翻转和转发事件的听众设置为:

    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 :(得分:0)

尝试这个

 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; 
    }
}

如果这不是工作立即回复。

由于

答案 1 :(得分:0)

我找到了解决这个问题的“黑客” 如果没有黑客攻击,在使用带下划线的样式再次渲染之前,文本似乎已被清空。当文本从带下划线的样式变为无文本装饰样式时也是如此。

文本正在更改其大小(从当前大小变为0然后再变为新大小)或在再次呈现内容之前清空内容。
所以我设置文本高度,这是我得到的:

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