[英]Adobe Flex: Accessing Particular Field From XMLList
我目前有从数据库返回的数据,并已存储在XMLList中。 在数据库的结果处理程序中,有一个循环,可将标记放在Google Map上,并根据类型提供自定义图标。 当我单击标记时,它将打开一个信息窗口,并显示包含XMLList中数据的HTML。 我还希望单击标记以将数据传递到我拥有的标签,但我似乎无法。 在此函数之外,我声明了以下内容: var dict=new flash.utils.Dictionary();
这是我到目前为止的代码:
protected function getBusiness_resultHandler(event:ResultEvent):void { var xml:XML = new XML(event.result as String); testList = xml.user;
for (var i:int=0; i<testList.length(); i++)
{
if (testList[i].type=="Hotel")
{
var bm:Bitmap = new Hotel as Bitmap;
}
else
{
var bm:Bitmap = new Hostel as Bitmap;
}
var html:String = "<b>" + testList[i].name + "</b><br/>" + testList[i].street + "<br/>" + testList[i].city + "<br/>" + testList[i].country + ", " + testList[i].postcode;
var testMarker:Marker = new Marker(new LatLng(testList[i].latitude,testList[i].longitude),
new MarkerOptions({icon:bm, iconOffset: new Point (-23, -44)}));
testMarker.addEventListener(MapMouseEvent.CLICK, function(e:MapMouseEvent):void {
Marker(e.currentTarget).openInfoWindow(new InfoWindowOptions({contentHTML:dict[e.currentTarget]}));
});
dict[testMarker] = html;
Map.addOverlay(testMarker);
}
}
该代码有效,它只允许我根据标记的纬度/经度显示所有标记,然后当我单击标记时,它将正确显示信息。 在click函数中,我添加了testLabel.text = testList.name;
它返回了所有的XML标签,但是我不知道如何访问特定的XML标签。 我尝试了testLabel.text = testList[i].name;
并且给出了错误代码Error #1010: A term is undefined and has no properties
。 我还尝试了testLabel.text = testList[e.currentTarget].name
,但标签上没有任何显示。
我只是不明白当我单击标记而不是标签时,它如何访问信息窗口的XML数据。 我不完全理解该字典,但是如果它只能使用一次,并且我必须在信息窗口和将功能返回标签之间选择,那么我需要它去标签。 我在这里真的很挣扎,因此感谢您的帮助。
我已经通过在文件的开头声明一个新字典解决了我的问题, var nameDict=new flash.utils.Dictionary();
然后在标记单击处理程序中,我有以下代码行detailName.text = nameDict[e.currentTarget];
然后在事件之外(但在打印标记的行nameDict[testMarker] = testList[i].name;
是以下行nameDict[testMarker] = testList[i].name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.