In this sample:1 - Layer visibility change works.2 - Legend content change works.<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:ags="http://www.esri.com/2008/ags">
<!-- Adobe Flex SDK 4.5.1 -->
<!-- ArcGIS API for Flex 2.5 -->
<s:layout>
<s:HorizontalLayout gap="5"
paddingBottom="10"
paddingLeft="20"
paddingRight="20"
paddingTop="20"/>
</s:layout>
<fx:Script>
<![CDATA[
import com.esri.ags.events.LayerEvent;
import com.esri.ags.layers.Layer;
import mx.collections.ArrayCollection;
import spark.events.IndexChangeEvent;
[Bindable]
private var layersList:ArrayCollection = new ArrayCollection();
protected function onLayerLoad(event:LayerEvent):void
{
layersList.addItem(event.layer);
if (layersList.length == 1)
{
ddlLayers.selectedIndex = 0;
ddlLayers.dispatchEvent(new IndexChangeEvent(IndexChangeEvent.CHANGE, false, false, -1, 0));
}
}
protected function onLayerSelectionChange(event:IndexChangeEvent):void
{
for each (var layer:Layer in myMap.layers)
{
if (layer == ddlLayers.selectedItem)
{
layer.visible = true;
layer.validateNow();
myLegend.map = myMap;
myLegend.respectCurrentMapScale = true;
myLegend.layers = new Array(layer);
}
else if (layer is ArcGISDynamicMapServiceLayer)
{
layer.visible = false;
}
}
}
]]>
</fx:Script>
<ags:Map id="myMap">
<ags:ArcGISTiledMapServiceLayer id="baseLayer"
url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/>
<ags:ArcGISDynamicMapServiceLayer id="layer1"
load="onLayerLoad(event)"
imageFormat="png32"
name="Events"
url="http://sampleserver5.arcgisonline.com/ArcGIS/rest/services/LocalGovernment/Events/MapServer" />
<ags:ArcGISDynamicMapServiceLayer id="layer2"
load="onLayerLoad(event)"
imageFormat="png32"
name="Recreation"
url="http://sampleserver5.arcgisonline.com/ArcGIS/rest/services/LocalGovernment/Recreation/MapServer" />
<ags:ArcGISDynamicMapServiceLayer id="layer3"
load="onLayerLoad(event)"
imageFormat="png32"
name="Geology"
url="http://sampleserver5.arcgisonline.com/ArcGIS/rest/services/Energy/Geology/MapServer" />
</ags:Map>
<s:VGroup gap="5"
paddingLeft="5"
paddingTop="5"
paddingRight="5"
paddingBottom="5"
height="100%"
width="100%">
<s:DropDownList id="ddlLayers"
minWidth="200"
dataProvider="{layersList}"
labelField="name"
change="onLayerSelectionChange(event)"/>
<s:Scroller height="100%">
<s:Group height="100%">
<ags:Legend id="myLegend" />
</s:Group>
</s:Scroller>
</s:VGroup>
</s:Application>
Good luck.