2011-12-20 12 views
0

私は各ループに対して特定の変数を取得しようとしています。これらの変数は、地図上のマーカーにクリックイベントを表示するために使用されます。マップ上のマーカーをクリックすると、詳細がポップアップ表示されます。これらの詳細は、ループが開始されるたびに上書きされます(50回)。私が探している解決策は、それに添付されている細部に応じて地図上のマーカーを選択しましょう。foreachループで適切な変数を取得する(flex-googlemaps)

簡単な解決策があるかもしれませんが、まだ見つかりませんでした。

コード:あなたはどこかにあなたが次のループを開始する前の値への参照を格納する必要が

for each(artistXML in artistList.events.event) 
       { 
        var gLat:int = artistXML.venue.location.*::point.*::lat; 
        var gLong:int = artistXML.venue.location.*::point.*::long; 

        var evntLng:LatLng = new LatLng(gLat,gLong); 
        var title:String = artistXML.title; 
        var wanneer:String = artistXML.startDate; 
        var waar:String = artistXML.venue.location.city; 
        var pic:String = artistXML.venue.image.(@size=="medium"); 

        var marker:Marker = new Marker(new LatLng(gLat, gLong)); 
        var info:InfoWindowOptions = new InfoWindowOptions(); 


        marker.addEventListener(MapMouseEvent.CLICK, function(event:Event):void { 

         var marker:Marker = event.target as Marker; 
         marker.openInfoWindow(new InfoWindowOptions({contentHTML: "<p><b>" + title + "</b></p><br/><p>" + wanneer + "</p> <br/> <p>" + waar + "</p>"})); 

        }); 

        map.addOverlay(marker); 

        Goverlay++; 

       } 

おかげ

答えて

1

私はあなたのMarkerInfoWindowOptionsクラスの構造が何であるかわからないので、より良い方法があるかもしれませんが、ここでは単純な解決策です:

は2つのmapMarkersと呼ばれる配列とinfoWindowsを作成します。ループごとに、新しいマーカーと新しいInfoWindowOptionsインスタンスを適切な配列にプッシュします。これらの変数は、InfoWindowOptionsでも設定する必要があります。次に、クリックハンドラで、クリックされたマーカーのインデックスを検索し(mapMarkers.indexOf(marker))、そのインデックスを使用して対応するInfoWindowOptionsを取得できます。