Hi folks,

I'm working on a google map that plots three sections of information.
there are quite a few marker points that is loaded in via xml.
All is well but when I click on a marker point, I want it to open the
info window to the corresponding marker that I selected, but instead,
it only opens the info window of the LAST item on the xml file.

I have the addEventListener within the for loop so I don't understand
what I am doing wrong. Here is the full code:
I am using Flash CS3 just within the timeline.


import com.google.maps.Map;
import com.google.maps.LatLng;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.controls.ZoomControl;
import com.google.maps.controls.PositionControl;
import com.google.maps.overlays.Marker;
import com.google.maps.overlays.MarkerOptions;
import com.google.maps.styles.FillStyle;
import com.google.maps.styles.StrokeStyle;
import com.google.maps.MapMouseEvent;
import com.google.maps.InfoWindowOptions;

var _lat:Number;
var _lng:Number;
var _type:String;
var _name:String;
var _label:int;
var _address:String;
var _hidden:Boolean = false;


var markerGroups = { "arts": [], "books": [], "cafe": []};
var markerObjects = new Array();

var map:Map = new Map();
map.key = "my key";
map.setSize(new Point(450, 415));
map.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);



function onMapReady(event:Event):void {
        map.setCenter(new LatLng(41.791206, -87.593934), 14,
MapType.NORMAL_MAP_TYPE);
        map.addControl(new MapTypeControl());
        map.addControl(new ZoomControl());
        map.addControl(new PositionControl());


        init("config/markerdata.xml");

}
function init(xmlPath:String) {
        var _mLoader:URLLoader = new URLLoader();
        _mLoader.addEventListener(Event.COMPLETE, onMLoaded);
        _mLoader.load(new URLRequest(xmlPath));
}
function onMLoaded(e:Event):void {
        var _mXML:XML = new XML(e.target.data);
        var _mXMLList:XMLList =new XMLList(_mXML.marker);
        for each (var child:XML in _mXMLList) {
                _lat = chi...@lat;
                _lng = chi...@lng;
                _type = chi...@type;
                _name = chi...@name;
                _label = chi...@label;
                _address = chi...@address;

var _blue:blueIcon = new blueIcon();
var _orange:orangeIcon = new orangeIcon();
var _green:greenIcon = new greenIcon();

var customIcons:Object = { "arts" :_blue, "books" :
_green,"cafe":_orange };
                var marker:Marker = new Marker(
                      new LatLng(_lat, _lng),
                      new MarkerOptions({
                                  radius: 7,
                                  hasShadow: false,
                                                  labelText: _label,
                                                  icon: customIcons[_type],
                          iconOffset: new Point( 0, 0)

                      }));
                markerGroups[_type].push(marker);

                map.addOverlay(marker);


                 marker.addEventListener(MapMouseEvent.MOUSE_DOWN, function
(event:Event):void {
    marker.openInfoWindow(new InfoWindowOptions({content:"Test"}));
  });

        }
        checkbox();
}
function checkbox():void {
        buttonMode = true;
        var _checkbox:Checkbox = new Checkbox();
        this.addChild(_checkbox);
        _checkbox.x= 500;
        _checkbox.y = 55;
        _checkbox.name="arts";

        var _checkbox2:Checkbox = new Checkbox();
        this.addChild(_checkbox2);
        _checkbox2.x= 500;
        _checkbox2.y = 100;
        _checkbox2.name="books";

        var _checkbox3:Checkbox = new Checkbox();
        this.addChild(_checkbox3);
        _checkbox3.x= 500;
        _checkbox3.y = 145;
        _checkbox3.name="cafe";

        _checkbox.addEventListener(MouseEvent.MOUSE_DOWN, hideGroup);
        _checkbox2.addEventListener(MouseEvent.MOUSE_DOWN, hideGroup);
        _checkbox3.addEventListener(MouseEvent.MOUSE_DOWN, hideGroup);

}
function hideGroup(e:Event):void {
        if (_hidden == false) {
                var type = e.target.name;
                for (var i:int=0; i<markerGroups[type].length; i++) {
                        var marker = markerGroups[type][i];
                        marker.visible=false;
                }
                e.target.gotoAndStop(2);
                _hidden = true;
        }else{
                for (var j:int=0; j<markerGroups[e.target.name].length; j++) {
                marker = markerGroups[e.target.name][j];
                marker.visible=true;

        }
        e.target.gotoAndStop(1);
        _hidden = false;
        }
}


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API For Flash" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-maps-api-for-flash?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to