问题描述
|
我的文本控件出现闪烁的问题。
这里是上下文:
我有一个由Text控件表示的标题(没有Label,因为它需要能够在多行中显示)。当用户将鼠标悬停在标题上时,必须在文本下划线。
我做了什么:
我已将标题的滚动和展开事件的侦听器设置为如下所示:
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更改下划线属性(无效)
在CSS中定义.accessoriesTitle和.accessoriesTitle:hover样式,但是悬停不起作用=(
有人会知道解决方案或解决此闪烁的问题吗?
感谢您的时间和帮助! :)
问候,
BS_C3
抱歉造成延迟,这是两种样式的声明:
.accessoriesTitle{
font-size: 13pt;
text-decoration: none;
leading: 1pt;
}
.accessoriesTitleHover{
font-size: 13pt;
text-decoration: underline;
leading: 1pt;
}
问候
解决方法
试试这个
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;
}
}
如果这不起作用,请立即答复。
谢谢
,我找到了一个“ hack”来解决此问题。
如果没有这些技巧,似乎是在清空文本之后再使用带下划线的样式再次渲染该文本。当文本从带下划线的样式变为无文本装饰样式时,也是如此。
文本要么更改其大小(从当前大小更改为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