我的文本控件出现闪烁问题。
上下文如下:
我有一个由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:悬停样式,但悬停不起作用=(
有人知道这个闪烁的东西的解决方案或变通方法吗?
感谢您的时间和帮助!!:)
问候,
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;
}
}
如果这不是工作,请立即回复。
感谢
我找到了一个"破解"来解决这个问题
如果没有黑客攻击,文本似乎在用下划线样式再次渲染之前被清空了。当文本从带下划线的样式变为无文本装饰样式时也是如此。
文本正在更改其大小(从当前大小更改为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