the other classes:
package com.qubozone.flash.map
{
import com.qubozone.flash.loaders.RequestXMLLoader;
import flash.display.Sprite;
import flash.events.Event;
public class MapRequest extends Sprite
{
private var _url:String;
private var _xmlLoader:RequestXMLLoader;
private var _mapXml:MapXml;
public function MapRequest(url:String)
{
_url = url;
loadXml();
}
private function loadXml():void
{
_xmlLoader = new RequestXMLLoader();
_xmlLoader.addEventListener(Event.COMPLETE,
onLoaderComplete);
_xmlLoader.loadRequest(_url);
}
private function onLoaderComplete(e:Event):void
{
createMap(_xmlLoader.loadXml());
_xmlLoader.removeEventListener(Event.COMPLETE,
onLoaderComplete);
}
private function createMap(xml:XML):void
{
_mapXml = new MapXml(xml);
_mapXml.addEventListener(Event.COMPLETE, onMapComplete);
addChild(_mapXml);
}
private function onMapComplete(e:Event):void
{
dispatchEvent(e);
_mapXml.removeEventListener(Event.COMPLETE,
onMapComplete);
}
}
}
package com.qubozone.flash.loaders
{
import flash.display.Sprite;
import flash.events.IEventDispatcher;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class RequestXMLLoader extends Sprite
{
private var _urlLoader:URLLoader;
public function RequestXMLLoader()
{
_urlLoader = new URLLoader();
addListeners(_urlLoader);
}
private function addListeners(d:IEventDispatcher):void
{
d.addEventListener(Event.OPEN, onOpen);
d.addEventListener(ProgressEvent.PROGRESS, onProgress);
d.addEventListener(Event.COMPLETE, onComplete);
}
public function loadRequest(url:String):void
{
var urlReq:URLRequest = new URLRequest(url);
_urlLoader.load(urlReq);
}
public function loadXml():XML
{
var xmlData:XML = new XML(_urlLoader.data);
xmlData.ignoreWhitespace = true;
return xmlData;
}
private function onOpen(e:Event):void
{
}
private function onProgress(e:ProgressEvent):void
{
}
private function onComplete(e:Event):void
{
dispatchEvent(e);
}
}
}
package com.qubozone.flash.map
{
import com.google.maps.MapEvent;
import flash.display.Sprite;
import flash.events.Event;
public class MapXml extends Sprite
{
private var _xml:XML;
private var _simpleMap:SimpleMap;
public function MapXml(xml:XML)
{
_xml = xml;
createMap();
loadMap(_xml);
}
private function createMap():void
{
_simpleMap = new SimpleMap();
_simpleMap.addEventListener(MapEvent.MAP_READY,
onSimpleMapReady);
addChild(_simpleMap);
}
private function loadMap(_xml:XML):void
{
for each(var location:XML in _xml..location)
{
_simpleMap.setKey(location.key);
_simpleMap.setSize(location.size);
_simpleMap.setCenter(location.center);
_simpleMap.setZoom(location.zoom);
}
}
private function onSimpleMapReady(e:MapEvent):void
{
dispatchEvent(new Event(Event.COMPLETE));
_simpleMap.removeEventListener(MapEvent.MAP_READY,
onSimpleMapReady);
}
}
}
package com.qubozone.flash.map
{
import com.google.maps.*;
import com.google.maps.controls.*;
import com.google.maps.overlays.*;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
public class SimpleMap extends Sprite
{
private var _mapOptions:MapOptions;
private var _markerOptions:MarkerOptions;
private var _map:Map;
public function SimpleMap()
{
initMapOptions();
initMarkerOptions();
initMap();
}
private function initMapOptions():void
{
_mapOptions = new MapOptions();
}
private function initMarkerOptions():void
{
_markerOptions = new MarkerOptions();
}
private function initMap():void
{
_map = new Map();
_map.addEventListener(MapEvent.MAP_PREINITIALIZE,
onMapPreinitialize);
_map.addEventListener(MapEvent.MAP_READY, onMapReady);
addChild(_map);
}
private function onMapPreinitialize(e:Event):void
{
_map.setInitOptions(_mapOptions);
_map.removeEventListener(MapEvent.MAP_PREINITIALIZE,
onMapPreinitialize);
}
private function onMapReady(e:Event):void
{
_map.addControl(new ZoomControl());
_map.addControl(new PositionControl());
_map.addControl(new MapTypeControl());
_map.addOverlay(new Marker(_map.getCenter()));
dispatchEvent(e);
_map.removeEventListener(MapEvent.MAP_READY,
onMapReady);
}
public function setKey(string:String):void
{
_map.key = string;
}
public function setSize(string:String):void
{
var a:Array = string.split(",", 2);
_map.setSize(new Point(a[0], a[1]));
}
public function setCenter(string:String):void
{
var a:Array = string.split(",", 2);
_mapOptions.center = new LatLng(a[0], a[1]);
}
public function setZoom(zoom:Number):void
{
_mapOptions.zoom = zoom;
}
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<map>
<location>
<key>ABQIAAAAYPnr_OthGfOdDO1QSxsYDRT2yXp_ZAY8_ufC3CFXhHIE1NvwkxTJa6PJrGjQJqyggIiDdwXk30JM9w</
key>
<size>700,600</size>
<center>45.173060,11.668044</center>
<zoom>9</zoom>
</location>
</map>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---