2011-12-20 2 views
0

Я пытаюсь получить определенные переменные из a для каждого цикла. Эти переменные используются для отображения события щелчка на маркере на карте. Если вы нажмете маркер на карте, детали появятся над ним. Теперь эти данные перезаписываются каждый раз, когда цикл начинается (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

Вам необходимо сохранить ссылку на значения где-то, прежде чем начать следующий цикл.

Я не уверен, что структура ваших Marker и InfoWindowOptions классов, так что может быть лучше, но вот наивным решение:

Создать 2 массивы называются mapMarkers и infoWindows. Для каждого цикла нажимайте новый маркер и новые экземпляры InfoWindowOptions в соответствующие массивы. Вам также нужно будет установить эти переменные в InfoWindowOptions. Затем в вашем обработчике кликов вы можете найти индекс маркера, который был нажат (mapMarkers.indexOf(marker)), и использовать этот индекс для получения соответствующих InfoWindowOptions.

Смежные вопросы