It looks like function closure problem.

You can try to bring your CLICK event handler to class level by making it a
class method.  Then also have a marker-data mapping at class level, so that
when CLICK event handler is triggered, get which marker is involved by
event.target , and map the marker to its data, then render your text.

(1) var marker_data:Array = []; // as class variable

(2) when a marker is added, also do this.

marker_data.push([marker, marker_data]);

(3) in CLICK event handler

function onClick(event:MouseEvent):void{
 var marker:Marker = event.target as Marker;
 // iterate marker_data to find the right one
for each(var pair:Array in marker_data){
  if(pair[0] == marker){
    pair[1]; // this is the related data
    // do what you like
  }
}

(4) register your marker's CLICK event with its handler



Hope that help.






On Mon, Jul 13, 2009 at 4:59 PM, rob <[email protected]> wrote:

>
> Hi, i have some Problems with my code.
> i want to change the textFormat in the infowindow.
> I hope you can help me.
> sorry for my enlish.
> here is the code
> thx rob
>
>
>
> import com.google.maps.LatLng;
> import com.google.maps.Map;
> import com.google.maps.MapEvent;
> import com.google.maps.MapType;
> import com.google.maps.controls.ZoomControl;
> //import com.google.maps.controls.PositionControl;
> //import com.google.maps.controls.MapTypeControl;
> import com.google.maps.overlays.MarkerOptions;
> import com.google.maps.overlays.Marker;
> import com.google.maps.InfoWindowOptions;
> import com.google.maps.MapMouseEvent;
> //import flash.text.TextFormat;
>
> // Create The Map
> var map:Map = new Map();
> map.key = "ABQIAAAAHnTxrW35iwO7TUyb5DVSlRQxwGfbL6iJ0RFbppF_-
> QJlM0HZohRurIf7OmFH21CL0s2xiRXkLddrmA";
> map.setSize(new Point(stage.stageWidth, stage.stageHeight));
> map.addEventListener(MapEvent.MAP_READY, onMapReady);
> mapcontainer.addChild(map);
>
> function onMapReady(event:MapEvent):void {
>  map.setCenter(new LatLng(52.507407,13.220243), 11,
> MapType.HYBRID_MAP_TYPE);
>  map.addControl(new ZoomControl());
>  // map.addControl(new PositionControl());
>  // map.addControl(new MapTypeControl());
>
>  xmlLoader();
> }
>
> function xmlLoader(){
>  function loadXML(e:Event):void{
>         XML.ignoreWhitespace = true;
>         var map_xml:XML = new XML(e.target.data);
>
>         for (var i:Number = 0; i < map_xml.location.length(); i++){
>
>                 var latlng:LatLng = new LatLng(map_xml.location[i].lat,
> map_xml.location[i].lon);
>                 var tip = map_xml.location[i].name_tip;
>                 var myTitle:String = map_xml.location[i].title_tip;
>                 var myContent:String = map_xml.location[i].content_tip;
>
>                 map.addOverlay(createMarker(latlng,i, tip, myTitle,
> myContent));
>         }// end of for loop
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>         // Add Markers On The Map
>         function createMarker(latlng:LatLng, number:Number, tip, myTitle,
> myContent):Marker {
>               var i:Marker = new Marker(
>
>     latlng,
>
>     new MarkerOptions({
>
>
>                                       icon: new MeinMarker(),
>                                                           hasShadow:
> true,
>
>
> tooltip: ""+tip
>                                                           })
>
>     );
>
>
>
>
>                           i.addEventListener(MapMouseEvent.CLICK, function
> (event:MapMouseEvent):void
>
>
>  {
>
>
>  map.openInfoWindow(event.latLng, new InfoWindowOptions
> ({
>
>                                                    titleHTML: ""+myTitle,
>
>                                                    contentHTML: ""+myContent
>
>
>
>
>
>
>                                     }));
>
>
>                                          });
>
>
>               return i;
>
>
>      }// end function createMarker
>  }// end of loadXML function
>
>  var xmlLoader:URLLoader = new URLLoader();
>  xmlLoader.addEventListener(Event.COMPLETE, loadXML);
>  xmlLoader.load(new URLRequest("xml.xml"));
> }
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> On 13 Jul., 06:57, "pamela (Google Employee)" <[email protected]>
> wrote:
> > That sounds like a function closure problem. Read through this section of
> > the developer's guide and note how the example does it:
> http://code.google.com/apis/maps/documentation/flash/events.html#Even...
> >
> > <http://code.google.com/apis/maps/documentation/flash/events.html#Even..
> .>-
> > pamela
> >
> > On Mon, Jul 13, 2009 at 2:49 PM, help(question) <[email protected]
> >wrote:
>  >
> >
> >
> > > Hello, and thank you to everyone.
> >
> > > I need to make a map that read XML. I need it to create multiple
> > > markers and each marker needs to have separate, unique information
> > > associated with it. For example address[1] - info[1]; address[2] - info
> > > [2]; address[3] - info[3].
> >
> > > I have gotten as far creating the map with multiple markers but the
> > > all the info windows get populated with the last bit of info. For
> > > example, address[1] has info[3].
> >
> > > Thank you again.
> >
>


-- 
=============
Juguang XIAO
Beijing, China

--~--~---------~--~----~------------~-------~--~----~
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