The same behaviour occurs with polygons. To deal with this (personnaly
I prefer both events being fired) I put all the addListeners and
removeListeners in two functions in the map and deactivate/activate
the map listeners calling them from on ROLL_OVER or ROLL_OUT event
handlers in the polygon :

function addMapMouseListeners():void {
        map.addEventListener(MapMouseEvent.MOUSE_DOWN,onMapMouseDown);
        map.addEventListener(MapMouseEvent.MOUSE_UP,onMapMouseUp);
}
function removeMapMouseListeners():void {
        map.removeEventListener(MapMouseEvent.MOUSE_DOWN,onMapMouseDown);
        map.removeEventListener(MapMouseEvent.MOUSE_UP,onMapMouseUp);
}

On Apr 3, 10:11 am, matt <[email protected]> wrote:
> It seems that different overlay types behave differently in terms of
> firing events.  I would guess that one of these is a bug but even
> after reading the documentation I am a little unclear as to which one
> is correct.
>
> My case:
>
> - I add a marker and a polyline to a map.  Each overlay is listening
> for MOUSE_UP and MOUSE_DOWN events.  Note that the marker is draggable
> to overcome a previously noted issue 
> (http://code.google.com/p/gmaps-api-issues/issues/detail?id=1156).  In
> addition, the map itself is listening for MOUSE_UP and MOUSE_DOWN
> events.
>
> - I click on the marker and then on the polyline.
>
> The results...
>
> For the marker, one MOUSE_UP and one MOUSE_DOWN event is generated
> with the feature/target set to the Marker
>
> For the polyline, two MOUSE_UP and two MOUSE_DOWN events are
> generated.  One pair has the feature/target set to the polyline and
> one pair has the feature/target set to the map itself.
>
> I can't imagine that this by design.  I believe that I can work around
> the issue but I would rather work around it by coding for the correct
> behaviour so that it will work properly in the future if the issue is
> resolved.  Also, I would be happy to add this as a bug but I wasn't
> sure which one to reference.
>
> The example code below demonstrates the issue.
>
>     private function onMapReady(event:Event):void {
>         map.setCenter(new LatLng(48.858842, 2.346997), 14,
> MapType.NORMAL_MAP_TYPE);
>
>          var pnts:Array = new Array(
>                 new LatLng(48.858842, 2.346997),
>                 new LatLng(48.958842, 2.646997));
>         var polylineA:Polyline = new Polyline(pnts);
>         polylineA.addEventListener(MapMouseEvent.MOUSE_DOWN,
> onMapMouseDown);
>         polylineA.addEventListener(MapMouseEvent.MOUSE_UP,
> onMapMouseUp);
>         map.addOverlay(polylineA);
>
>         var markerA:Marker = new Marker(
>                 new LatLng(48.858842, 2.346997),
>                 new MarkerOptions
>                 (
>                         {
>                                 draggable: true
>                         }
>                 ));
>         markerA.addEventListener(MapMouseEvent.MOUSE_DOWN,
> onMapMouseDown);
>         markerA.addEventListener(MapMouseEvent.MOUSE_UP,
> onMapMouseUp);
>         map.addOverlay(markerA);
>
>         map.addEventListener(MapMouseEvent.MOUSE_DOWN,
> onMapMouseDown);
>         map.addEventListener(MapMouseEvent.MOUSE_UP, onMapMouseUp);
>
>     }
>
>     private function onMapMouseDown(event:MapMouseEvent):void
>     {
>         trace("MapMouseDown:" + event.feature + ", " + event.target);
>     }
>
>     private function onMapMouseUp(event:MapMouseEvent):void
>     {
>         trace("MapMouseUp:" + event.feature + ", " + event.target);
>     }
--~--~---------~--~----~------------~-------~--~----~
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