在ActionScript中,我将XML缩减为一系列节点,所有节点都形成如下:
<option letter="A">
<letter>A</letter>
<response>Thank you</response>
<posFeed>Excellent</posFeed>
<negFeed>Terrible</negFeed>
<score>-1</score>
<elimOptions>B</elimOptions>
</option>
当我将此系列设置为使用带有Spark标签的自定义项目渲染器的Spark列表的dataProvider时,我设置了label.text = {data},它将每个完整的节点集显示为列表项。< / p>
如果我不想事先将XML简化为节点(我希望我必须完成其他函数的完整集),我怎样才能将响应节点设置为数据到用于itemRenderer中的标签?我尝试设置标签text = {data.response},但这不起作用(一组完整的节点仍然显示为每个列表项。
答案 0 :(得分:0)
像这样:
<fx:Declarations>
<fx:XML id="data">
<options>
<option letter="A">
<letter>A</letter>
<response>Thank you</response>
<posFeed>Excellent</posFeed>
<negFeed>Terrible</negFeed>
<score>-1</score>
<elimOptions>B</elimOptions>
</option>
<option letter="B">
<letter>B</letter>
<response>Thank you B</response>
<posFeed>Excellent B</posFeed>
<negFeed>Terrible B</negFeed>
<score>-1</score>
<elimOptions>B</elimOptions>
</option>
</options>
</fx:XML>
</fx:Declarations>
<s:List labelField="response">
<s:dataProvider>
<s:XMLListCollection source="{data.option}" />
</s:dataProvider>
</s:List>
我应该补充说,当我这样做时,我在使用自定义项目渲染器时没有遇到任何问题:
<s:List itemRenderer="DataItemRenderer">
<s:dataProvider>
<s:XMLListCollection source="{data.option}" />
</s:dataProvider>
</s:List>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:Label text="{data.response}"/>
</s:ItemRenderer>