2012-05-29 31 views
0

我目前有從我的數據庫返回的數據並已存儲在XMLList中。在數據庫的結果處理程序中有一個將標記放置在Google Map上的循環,其中自定義圖標取決於類型。當我點擊標記時,它會打開一個信息窗口並顯示來自XMLList的包含數據的HTML。我也希望點擊標記將數據傳遞給我擁有的標籤,但我似乎無法做到。 超過這個功能我已經聲明如下: var dict=new flash.utils.Dictionary();Adob​​e Flex:從XMLList訪問特定字段

下面的代碼我到目前爲止:

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); 
      } 

     } 

該代碼工作,它只是允許我以顯示基於所有標記在他們的緯度/經度上,然後當我點擊標記時,它會正確顯示信息。在點擊函數中,我添加了testLabel.text = testList.name;,它返回了所有的XML標籤,但我不知道如何訪問特定的標籤。我試過testLabel.text = testList[i].name;,它給出了一個錯誤,說Error #1010: A term is undefined and has no properties。我也嘗試過testLabel.text = testList[e.currentTarget].name,在我的標籤中什麼也沒有顯示出來。

我只是不明白當我點擊標記時,如何訪問信息窗口的XML數據,但不是標籤。我不完全理解字典,但如果它意味着它只能使用一次,並且我必須在信息窗口之間進行選擇並將該函數返回給標籤,那麼我需要它去標籤。 我真的在這裏掙扎,所以我很感激任何幫助。

+1

請附上XML數據 – roflmao

+0

那麼有沒有XML文件,但PHP寫XML作爲它來自數據庫返回它看起來是這樣的:? 我不會輸入了這一切,但你的想法。 – user1077544

回答

0

我已經在我的文件var nameDict=new flash.utils.Dictionary();年初宣佈一個新的字典解決我的問題,然後在我的標記單擊處理我有以下行detailName.text = nameDict[e.currentTarget];則事件之外(但旁邊打印標記是線。下面一行nameDict[testMarker] = testList[i].name;