Hi John,

The destinations are drawn from an array.

This means each line gets drawn separately.

Therefore when removing the loaders you need to make sure you backtrack all
the lines and not just the last one.

This applies for everything built by retrieving objects.

A very common error by coders.

Just remember that every xml line is like one element in an array.

If you test this with images, you will find eventually you overload the
memory as objects are just being stacked one on another.

Very difficult to pick up when you are are not experienced with the
construction and deconstruction methods of a language..

After practicing with the different listeners and watching your mobile
device slow to a grinding halt you will learn to find these issues.

Read up about how you should be using removeListener.

Cheers

On Sat, Jul 23, 2011 at 12:04 PM, Jon Bowles <[email protected]> wrote:

> Hello,
>
> I have searched everywhere for the answer, and have been trying to
> solve this myself for a couple days now.
>
> WHAT I AM DOING:
> I am trying to create a Route Map for a Virtual Airline (VA).  I have
> 2 XML files that I am dynamically calling; the first retrieves
> airports for the VA, the second parses just the destinations of that
> airport.  When a user hovers over an airport marker, I have it drawing
> geodesic polylines from the current airport to the "destination"
> airports.
>
> MY PROBLEM:
> I have managed to get everything working great.  My problem is that
> when there are more than one polyline drawn, it clears only the
> first(last) poly that was drawn.  If there is just 1 destination, it
> clears fine.
>
> So, I know that it has to do with the way I am parsing the XML, and
> creating the polyline array.  But being a bit new to AS3 and Google
> Maps API for Flash, I can't quite see what I am doing wrong (actually
> I am not that good enough yet, either!).
>
> Here is a link to the map I have so far:
> http://chicagoflightsfsx.com/IHeart707/googleTutorial.html
>
> This is the last bit I have to do with this map, but just can't seem
> to nail where I am going wrong.
>
> Here is the code I am using (some I have written, and some I have
> gotten from examples on the net):
>
> import com.google.maps.LatLng;
> import com.google.maps.LatLngBounds;
> import com.google.maps.controls.ZoomControl;
> import com.google.maps.controls.PositionControl;
> import com.google.maps.controls.MapTypeControl;
> import com.google.maps.InfoWindowOptions;
> import com.google.maps.Map;
> import com.google.maps.MapEvent;
> import com.google.maps.MapMouseEvent;
> import com.google.maps.MapType;
> import com.google.maps.overlays.*;
> import com.google.maps.StyledMapType;
> import com.google.maps.StyledMapTypeOptions;
> import com.google.maps.styles.*;
>
>
> // FlashVars embedded in the HTML Object and Parameter tags
> var paramObj:Object = this.root.loaderInfo.parameters
> var myKey:String = paramObj.myKey;
> var myVaid:String = "584";//paramObj.myVaid;
>
> // Initiate the google map
> var map:Map = new Map();
> map.key = ""+myKey;
> map.sensor = "false";
> map.setSize(new Point(stage.stageWidth, stage.stageHeight));
> map.addEventListener(MapEvent.MAP_READY, onMapReady);
> this.addChild(map);
>
> function onMapReady(event:Event):void {
>        map.setCenter(new LatLng(35.675147, -94.570312), 4,
> MapType.PHYSICAL_MAP_TYPE);
>        map.addControl(new ZoomControl());
>        getXml();
> }
>
> function getXml():void {
>        var airportsXml:URLRequest = new URLRequest("http://
> www.vafinancials.com/plugins/app/x_airports.php?id="+myVaid);
>        var xmlLoader:URLLoader = new URLLoader(airportsXml);
>        xmlLoader.addEventListener("complete", readXml);
> }
>
> function readXml(event:Event):void {
>        XML.ignoreWhitespace = true;
>        var airportsXml:XML = new XML(event.target.data);
>        for (var i:Number = 0; i < airportsXml.airport.length(); i++){
>
>        var newLat:Number = airportsXml.airport[i].lat;
>                var newLon:Number = airportsXml.airport[i].lon;
>                var latlng:LatLng = new LatLng(airportsXml.airport[i].lat,
> airportsXml.airport[i].lon);
>        var tip = airportsXml.airport[i].aname;
>        var myTitle:String = airportsXml.airport[i].aname;
>        var myContent:String = airportsXml.airport[i].icao;
>
>                map.addOverlay(createMarker(latlng, i, tip, myTitle,
> myContent,
> newLat, newLon));
> }
>
> // Add Markers On The Map
> function createMarker(latlng:LatLng, number:Number, tip, myTitle,
> myContent, newLat, newLon):Marker {
>        var i:Marker = new Marker(latlng,
>    new MarkerOptions({
>                strokeStyle: {
>                color: 0xBD7E1B
>                },
>                fillStyle: {
>                color: 0xBD7E1B,
>                alpha: 0.8
>                },
>                label: "",
>                labelFormat: {
>                font: "Trebuchet MS",
>                size: 10,
>                color: 0xFFFFFF,
>                bold: true
>                },
>                radius: 2.5,
>        hasShadow: true,
>        tooltip: ""+tip
>        })
>        );
>
> i.addEventListener(MapMouseEvent.CLICK,
> function(event:MapMouseEvent):void {
>    map.openInfoWindow(event.latLng, new InfoWindowOptions({
>        titleHTML: ""+myTitle,
>        contentHTML: ""+myContent
>        }));
>    });
>
> i.addEventListener(MapMouseEvent.ROLL_OVER,
> function(e:MapMouseEvent):void {
>        var icao:String = new String(myContent);
>        var routesXml:URLRequest = new URLRequest("http://
> www.vafinancials.com/plugins/app/x_airports_dest.php?id=
> "+myVaid+"&icao="+icao);
>        var xmlLoader:URLLoader = new URLLoader(routesXml);
>        xmlLoader.addEventListener("complete", readXml);
>
>        function readXml(event:Event):void {
>                XML.ignoreWhitespace = true;
>                var routesXml:XML = new XML(event.target.data);
>                for (var i2:Number = 0; i2 < routesXml.airport.length();
> i2++){
>                        var lat:Number = routesXml.airport[i2].lat;
>                        var lon:Number = routesXml.airport[i2].lon;
>                        var p:Polyline = new Polyline([
>                                new LatLng(newLat, newLon), new LatLng(lat,
> lon)
>                                ], new PolylineOptions({
>                                        strokeStyle: new StrokeStyle({
>                                        color: 0x1B5ABD,
>                                        thickness: 1.75,
>                                        alpha: 0.5}),
>                                        geodesic: true
>                                }))
>                        map.addOverlay(p);
>                        (trace(getVertexCount()));
>                }
>                        i.addEventListener(MapMouseEvent.ROLL_OUT,
> function(e:MapMouseEvent):void {
>                                map.removeOverlay(p);
>
>                        });
>        }
> });
>        return i;
>        }
> }
>
> --
> 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.
>
>

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