繁体   English   中英

Adobe Flex:从XMLList访问特定字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM