Hello Rick, I see you have a good understanding of this problem, could you help me with my function.
my objective is to have an externalinterface call back to the marker chosen. see here for example.. http://booksdirtcheap.com/test/dcb-melb-locations.html problem is the marker last created gets displayed and i am unsure how to select the appropriate marker. Bridh function createMarker(latlng:LatLng, name:String, address:String, mon:String, tue:String, wed:String, thur:String, fri:String, sat:String, sun:String) { var marker:Marker = new Marker(latlng, new MarkerOptions({ icon:new CustomIconSprite(), iconAlignment: MarkerOptions.ALIGN_BOTTOM, iconOffset: new Point(-11,0), strokeStyle: new StrokeStyle({color: 0x987654}), fillStyle: new FillStyle({color: 0x223344, alpha: 0.8}), radius: 12, tooltip: name, hasShadow: true })); var html:String="<b>"+name+"</b><br/><b>"+address+"</b><br/ >Monday :"+mon+" <br/>Tuesday :"+tue+" <br/>Wednesday :"+wed+" <br/ >Thurday :"+thur+" <br/>Friday :"+fri+" <br/>Saturday :"+sat+" <br/ >Sunday :"+sun; name : Object = DataBoundMarker(event.target).data; ExternalInterface.addCallback("AirportWest", func); function func(value:String) { //if value == this.name display... //WHICH MARKER ARE WE USING?? if (value=="AirportWest" ) { marker[name].openInfoWindow(new InfoWindowOptions({contentHTML:html})); } } marker.addEventListener(MapMouseEvent.CLICK, function(e:MapMouseEvent):void {; marker.openInfoWindow(new InfoWindowOptions({contentHTML:html})); trace("name "+marker[name]); }); //trace("marker = >"+ marker); //t.obj(marker, 1, "this is a ", true, " object"); //t.str(t.stack); //trace("this name="+name); return marker; } On Feb 23, 12:00 am, RickB <[email protected]> wrote: > Hi, Ben. > > I had the same challenge, and after some experimentation, I came up > with a very easy and extensible solution which involves extending the > Marker class. > > First of all, you can use the event.target to determine which Marker > was the source of the event. Next, you need a way to attach some user > data to each Marker. That's where the magic lies! See below for an > example. You can follow this pattern to add whatever data you want to > a Marker, and then you can access it in the event handler using > something like: > > dataForSelectedMarker : Object =DataBoundMarker(event.target).data > > See below for the mechanism for a sample of the extended Marker class. > > HTH, > > Rick > > ============= > > package mystuff > { > import com.google.maps.overlays.Marker; > import com.google.maps.overlays.MarkerOptions; > import com.google.maps.LatLng; > public classDataBoundMarkerextends Marker > { > [Bindable] > public var data : Object; > public functionDataBoundMarker(arg0:LatLng, > arg1:MarkerOptions=null, dataRow:Object=null) > { > super(arg0, arg1); > this.data = dataRow; > } > } > > } > > On Feb 19, 7:45 pm, BenP <[email protected]> wrote: > > > > > > > Hi, I have an array of markers, and am looking for a way to identify > > which marker the user has just rolled over. > > basically getting some kind of Marker ID via the event would be great. > > > I thought abbout adding a custom event, which would contain an > > Id:Number field, but i don't know how to extent > > MapMouseEvent.ROLL_OVER to insure it will work on a roll over. > > > I can extract the markers latlng form the roll over event, but really > > don't want to have to resort to searching my marker array to fine the > > correct one. > > -- 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.
