Solved! Go to Solution.
<layer label="Aerial (36,111 and below)" type="tiled" visible="false" maxscale="4513.9887049999998" minscale="36111.909643" forcescaleonswitch="4513.9887049999998" autoswitchtoscale="36111.909643" icon="assets/images/aerial.png" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/> <layer label="Topo (72,223 and above)" type="tiled" visible="true" maxscale="72223.819286" forcescaleonswitch="72223.819286" autoswitchtoscale="72223.819286" icon="assets/images/topo.png" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/>
private function basemapButtonBar_changeHandler(event:IndexChangeEvent):void { var layers:ArrayCollection = map.layers as ArrayCollection; basemapsButtonBar.fader.value = event.newIndex + 1; for (var x:int = 0; x < basemapList.length; x++){ var basemapLabel:String = basemapList.getItemAt(x).label; for each (var layer:Layer in layers){ if(basemapList.getItemAt(event.newIndex).label != basemapLabel) if(layer.id == basemapLabel) layer.visible = false; if(layer.id == basemapLabel) layer.alpha = 1; } } if(basemapList.getItemAt(event.newIndex).forcescaleonswitch && map.scale < basemapList.getItemAt(event.newIndex).forcescaleonswitch){ map.scale = basemapList.getItemAt(event.newIndex).forcescaleonswitch; /* if(basemapList.getItemAt(basemapSelectionComponent.selectedIndex).label == "myspecialbasemap"){ map.centerAt(new MapPoint(x,y, map.spatialReference)); } */ if(basemapList.getItemAt(basemapSelectionComponent.selectedIndex).label == "Aerial (36,111 and below)" && map.scale > 36111.909643) map.scale = 36111.909643; } AppEvent.dispatch(AppEvent.BASEMAP_SWITCH, basemapList.getItemAt(event.newIndex).id); }