<esri:Map id="mainMap" width="100%" height="100%"This is the combo box:
units="{Units.METERS}" visible="true" initialize"initMap()">
<esri:extent >
<esri:Extent id="startExtent" xmin="-10944809" ymin="4276422" xmax="-9568555" ymax="5020001">
<esri:SpatialReference wkid="102100"/>
</esri:Extent>
</esri:extent>
<esri:ArcGISTiledMapServiceLayer id="medIncomeLayer" alpha="0.7" visible="true"
url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Household_Income/MapServer" />
<esri:ArcGISTiledMapServiceLayer id="socialVunLayer" alpha="0.7" visible="false"
url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Social_Vulnerability_Index/MapServer" />
<esri:ArcGISTiledMapServiceLayer id="unemployLayer" alpha="0.7" visible="false"
url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Unemployment_Rate/MapServer"
</esri:Map>
mx:ComboBox id="layerPickList1" change="changeMap(mainMap)"
paddingBottom="10" paddingTop="10"
paddingLeft="10" paddingRight="10"
dataProvider="{comboList}" x="67"/>
public function changeMap (myMap:Map): void {
var mapName:String = myMap.id;
var chosenLayer:String = layerPickList1.text;
var listPosition:Number = comboList.indexOf(chosenLayer);
var displayLayer:Object = LayerList[comboList.indexOf(chosenLayer)];
for each (var mapLayer:Layer in LayerArray) {
trace (mapLayer.id);
if (mapLayer.id == displayLayer) {
mapLayer.visible=true;
} else {
mapLayer.visible=false;
}
}
}
public function initMap () : void {
LayerArray.addItem(medIncomeLayer);
LayerArray.addItem(socialVunLayer);
LayerArray.addItem(unemployLayer);
}
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:esri="http://www.esri.com/2008/ags"
xmlns:components="components.*"
layout="horizontal"
pageTitle="" backgroundColor="#F8EEC5"
initialize="initMap()">
<mx:Script>
<![CDATA[
import com.esri.ags.SpatialReference;
import com.esri.ags.Map;
import mx.collections.ArrayCollection;
import com.esri.ags.layers.Layer;
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
import com.esri.ags.layers.ArcGISTiledMapServiceLayer;
import com.esri.ags.geometry.Extent;
import com.esri.ags.events.ExtentEvent;
import com.esri.ags.geometry.Extent;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.utils.WebMercatorUtil;
import com.esri.ags.Units;
import mx.containers.Canvas;
import mx.controls.Alert;
import mx.utils.ObjectUtil;
import flash.utils.ByteArray;
import mx.managers.FocusManager;
public var comboList:Array = ["Median Income","View Social Vunerability","View Unemployment"];
public var LayerList:Array = ["medIncomeLayer","socialVunLayer","unemployLayer"];
// public var medIncomeLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer;
public var socialVunLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer;
public var unemployLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer;
[Bindable]
public var LayerArray:ArrayCollection = new ArrayCollection;
public var canvasCounter:Number = 1;
public var mapArray:ArrayCollection = new ArrayCollection;
public var map2:Map = new Map ();
public var map3:Map = new Map ();
public function initMap() : void {
socialVunLayer.id = "socialVunLayer";
socialVunLayer.alpha=0.7;
socialVunLayer.visible=true;
socialVunLayer.url= "http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Social_Vulnerability_Index/MapServer";
unemployLayer.id="unemployLayer";
unemployLayer.alpha=0.7;
unemployLayer.visible=true;
unemployLayer.url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Unemployment_Rate/MapServer";
}
public function changeMap(): void {
var chosenLayer:String = layerPickList1.text;
if (canvasCounter < 3) {
canvasCounter = canvasCounter + 1;
var myMap:Map = new Map ();
var eventName:String = "onExtentChange"+canvasCounter;
myMap.id="map"+ canvasCounter;
switch (eventName) {
case "onExtentChange2":
myMap = map2;
myMap.id="map2";
myMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange2);
break;
case "onExtentChange3":
myMap = map3;
myMap.id="map3";
myMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange);
break;
}
var beginExtent:Extent = mainMap.extent;
var spatRef:SpatialReference = mainMap.extent.spatialReference;
myMap.extent = beginExtent;
myMap.extent.spatialReference = mainMap.extent.spatialReference;
switch (chosenLayer) {
case "View Social Vunerability":
myMap.addLayer(socialVunLayer);
break;
case "View Unemployment":
myMap.addLayer(unemployLayer);
break;
}
mapBox.addChild(myMap);
myMap.extent = mainMap.extent;
myMap.extent.spatialReference = mainMap.extent.spatialReference;
myMap.scale = mainMap.scale; }else {
Alert.show ("Maximum number of maps reached") ;
}
mainMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange);
}
public function onExtentOff () : void {
trace ("extentEvent turned off");
}
public function onExtentChange(event:ExtentEvent):void {
map2.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff);
map3.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff);
map2.extent = mainMap.extent;
map3.extent = mainMap.extent;
map2.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange2);
map3.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange3);
}
public function onExtentChange2(event:ExtentEvent):void {
mainMap.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff);
map3.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff);
mainMap.extent = map2.extent;
map3.extent = map2.extent;
mainMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange);
map3.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange3);
}
public function onExtentChange3(event:ExtentEvent):void {
mainMap.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff);
map2.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff);
mainMap.extent = map3.extent;
map2.extent = map3.extent;
mainMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange);
map2.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange2);
}
]]>
</mx:Script>
<mx:VBox height="100%" width="100%">
<mx:ComboBox id="layerPickList1" change="changeMap()"
paddingBottom="10" paddingTop="10"
paddingLeft="10" paddingRight="10"
dataProvider="{comboList}" x="67"/>
<mx:HBox visible="false" includeInLayout="false">
<mx:Label text="Current map extent:" fontWeight="bold"/>
<mx:Label text="xmin: {mainMap.extent.xmin.toFixed(3)}"/>
<mx:Label text="ymin: {mainMap.extent.ymin.toFixed(3)}"/>
<mx:Label text="xmax: {mainMap.extent.xmax.toFixed(3)}"/>
<mx:Label text="ymax: {mainMap.extent.ymax.toFixed(3)}"/>
<mx:Label text="Current map scale:" fontWeight="bold"/>
<mx:Label text="1:{mainMap.scale.toFixed(0)}"/>
</mx:HBox>
<mx:HBox height="100%" width="100%" id="mapBox">
<esri:Map id="mainMap"
units="{Units.METERS}" visible="true" >
<esri:extent >
<esri:Extent id="startExtent" xmin="-10944809" ymin="4276422" xmax="-9568555" ymax="5020001">
</esri:Extent>
</esri:extent>
<esri:ArcGISTiledMapServiceLayer id="medIncomeLayer" alpha="0.7" visible="true"
url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Household_Income/MapServer" />
</esri:Map>
</mx:HBox>
</mx:VBox>
</mx:Application>