Flex 3:突出显示(更改背景)字符串中某些字符

时间:2012-02-10 11:26:57

标签: list flex filter flex3 highlighting

我正在Flex 3中实现联系人列表,我现在已经实现了列表过滤以显示结果。但是,我想在结果中突出显示匹配的字符,是否可以实现此目的?例如:

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以使用this库。从gskinner查看example。您还可以使用setTextFormat更改某些字符的格式,但是这种方法无法更改文本背景颜色。如果您不需要更改背景颜色,只需使用文本格式或TextRange下划线。

如果您需要100%的解决方案,只需深入研究this之类的解决方案,或阅读this更早但更好的帖子。希望能让您了解从哪里开始。

答案 1 :(得分:0)

要更改背景颜色,只需将Label或Text对象放在HBox中。

<mx:HBox>
   <mx:Label text="{contact.name}"/>
</mx:HBox>

然后在HBox上设置backgroundColor,您可以将其引用为Label#parent。由于您正在创建一个动态的联系人列表,我假设您将它们放在一个数组中并循环遍历数组以检查名称是否匹配

var currentContact:Label = myContactLabelsArray.getItemAt(i);
...
Container(currentContact.parent).setStyle("backgroundColor","Yellow");

但是,以这种方式设置样式可能很昂贵http://livedocs.adobe.com/flex/3/html/help.html?content=styles_08.html