Solved! Go to Solution.
private function basemapButtonBar_changeHandler(event:IndexChangeEvent):void { var layers:ArrayCollection = map.layers as ArrayCollection; basemapButtonBar.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).label == "Esri Nav. Charts" && map.scale < 577790.554289) map.scale = 577791; AppEvent.dispatch(AppEvent.BASEMAP_SWITCH, basemapList.getItemAt(event.newIndex).id); }
<widget right="1" top="1" config="widgets/eMapSwitcher/MapSwitcherWidget.xml" url="widgets/eMapSwitcher/MapSwitcherWidget.swf"/> <widget left="8" top="20" config="widgets/CoordinateMenu/CoordinateMenuWidget.xml" url="widgets/CoordinateMenu/CoordinateMenuWidget.swf"/> <widget horizontalcenter="0" bottom="0" config="widgets/Coordinate/CoordinateWidget.xml" url="widgets/Coordinate/CoordinateWidget.swf"/> <splashpage label="" config="widgets/mySplash/SplashWidget.xml" url="widgets/mySplash/SplashWidget.swf"/> <widget top="0" left="5" url="widgets/MapProgressBarWidget/MapProgressBarWidget.swf"/> <map wraparound180="true" initialextent="-7171000 5778500 -7024000 5841700" fullextent="-7600000 5514000 -6426000 6020000" top="40" esrilogovisible="false"> <basemaps> <layer label="Streets" type="tiled" visible="true" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <layer label="Topo" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/> <layer label="Aerial" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/> <layer label="Esri Nav. Charts" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/> <layer label="Esri Nav. Charts" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/Specialty/World_Navigation_Charts/MapServer"/> <layer label="Sites" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <layer label="Sites" type="tiled" visible="false" url="http://www.avcvit.com/ArcGIS/rest/services/pwgsc_sites/MapServer"/> <layer label="2009" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <layer label="2009" type="tiled" visible="false" url="http://www.avcvit.com/ArcGIS/rest/services/pwgsc_2009/MapServer"/> <layer label="2010" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <layer label="2010" type="tiled" visible="false" url="http://www.avcvit.com/ArcGIS/rest/services/pwgsc_2010/MapServer"/> <layer label="2011" type="tiled" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <layer label="2011" type="tiled" visible="false" url="http://www.avcvit.com/ArcGIS/rest/services/pwgsc_2011/MapServer"/> </basemaps>
private function basemapButtonBar_changeHandler(event:IndexChangeEvent):void { var layers:ArrayCollection = map.layers as ArrayCollection; basemapButtonBar.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).label == "Esri Nav. Charts" && map.scale < 577790.554289) map.scale = 577791; AppEvent.dispatch(AppEvent.BASEMAP_SWITCH, basemapList.getItemAt(event.newIndex).id); }