这是我的 XML http://pastie.org/5413932
基本上我想使用 AS3 中的列表组件在列表框中列出场地的名称!我对此进行了多次尝试,但没有任何运气。
我已经有代码加载到 XML 等这里http://pastie.org/5413941 我尝试使用list.addItem({label:myXML.venue.name}); 在一个确实列出了场地名称的函数中,但由于某种原因,我在运行 swf 时无法逐个选择它们,我只能选择第一个。
我是 AS3 的新手
提前致谢 :)
这是我的 XML http://pastie.org/5413932
基本上我想使用 AS3 中的列表组件在列表框中列出场地的名称!我对此进行了多次尝试,但没有任何运气。
我已经有代码加载到 XML 等这里http://pastie.org/5413941 我尝试使用list.addItem({label:myXML.venue.name}); 在一个确实列出了场地名称的函数中,但由于某种原因,我在运行 swf 时无法逐个选择它们,我只能选择第一个。
我是 AS3 的新手
提前致谢 :)
看来你最近问过这个 xml 一个问题 - 所以这次我们可以看到 XML 结构:
var venueNames:XMLList = myXML.venue.name;//here you have all name's nodes
if(venueNames && venueNames.length() > 0)
{
for each (var name:XML in venueNames)
{
trace(name);
list.addItem({label:name.toString()});
}
}
这是您注册对列表中项目的点击的方式:
list.addEventListener(ListEvent.ITEM_CLICK, nameSelectedHandler, false, 0, true);
这是事件可能包含的内容:
[ListEvent type="itemClick" bubbles=false cancelable=true columnIndex=0 rowIndex=0 index=0 item=[object Object]]
该事件的 item 属性是通过 addItem 方法放置的任何对象,如您所见,还有 index 属性 - 您可以使用它来识别单击了哪个项目。然后可以从 XML 中获取场地节点,如下所示:
myXml.venue[e.index];//where e is the ListEvent
您可以用一个函数包装它,而不是在其他地方使用它,就像在处理程序中的以下示例中一样,用于单击提交按钮:
protected function onSubmit(e:MouseEvent):void
{
if(list.selectedIndex != -1)
{
trace(findVenueByIndex(list.selectedIndex));
}
else
{
trace("Nothing selected");
}
}
protected function findVenueByIndex(index:int = 0):XML
{
return myXML.venue[index];
}
问候