我正在使用Flash Builder 4,我有一个名为words.xml的外部XML文件,其结构如下:
<wordList>
<wordRecord>
<word>duck</word>
<syllables>1</syllables>
<firstLetter>d</firstLetter>
<!--other fields-->
</wordRecord>
<wordRecord>
<word>machete</word>
<syllables>3</syllables>
<firstLetter>m</firstLetter>
<!--other fields-->
</wordRecord>
<!--more wordRecords-->
</wordList>
现在,请注意,这些不是确切的字段名称或内容,因为这些是我的客户端专有的,其XML文件就是这样。但这是基本结构。我需要在List中的每个“wordRecord”中只显示“word”字段,这将通过拖放和其他好东西启用。
Flash Builder MXML文件的相关部分是:
<fx:Declarations>
<fx:XML id="wordsXML" source="/xml/words.xml" />
<fx:Declarations>
<s:List id="resultsList">
<s:dataProvider>
<s:XMLListCollection id="xmlWords" source="{wordsXML..word}" />
</s:dataProvider>
</s:List>
到目前为止,这么好。列表在我的Air应用程序中显示正常,滚动和所有内容,并且当存在适当的属性时,拖放效果很好。
但我需要的是能够根据其他字段过滤列表,并只显示结果中的单词。
出于目前的目的,让我们假设XML文件包含许多“wordRecord”元素,并且我需要创建一个filterFunction,它最终将只给出“firstLetter”的“word”,让我们假设“m ”
我尝试根据我在网络上找到的一些示例创建一个filterFunction,但由于我的XMLListCollection只是字段,我无法让filterFunction与其他XML字段一起使用。我尝试更改XMLListDeclaration以将每个“wordRecord”元素作为XMLList给出,但后来我无法弄清楚如何使s:List仅显示filterFunction的结果中的“word”。
有什么想法吗?提前谢谢。
答案 0 :(得分:1)
<s:List id="resultsList" labelField="word">
<s:dataProvider>
<s:XMLListCollection
id="xmlWords"
source="{wordsXML..wordRecord}"
/>
</s:dataProvider>
</s:List>
这样你就可以使用'wordRecord'对象作为过滤函数;