var kmllayer:KMLLayer = new KMLLayer("http://explore.data.gov/download/db3a-9tgn/KML");
kmllayer.getLegendInfos(new AsyncResponder(kmlLegendResult,kmlLegendFault,null));
private function kmlLegendResult(lInfos:Array, token:Object):void
{
var llInfo:LayerLegendInfo = lInfos[0] as LayerLegendInfo;
const layName:LegendDataItem = new LegendDataItem();
layName.lname = llInfo.layerName;
layName.id = Number.NaN;
layName.label = llInfo.layerName;
layName.minscale = llInfo.minScale;
layName.maxscale = llInfo.maxScale;
const lClass:LegendDataClassItem = new LegendDataClassItem();
for(var ll2:int =0; ll2 < llInfo.legendItemInfos.length; ll2++){
var lli:LegendItemInfo = llInfo.legendItemInfos[ll2] as LegendItemInfo;
lClass.symbolitems.push(processRenderer(lli));
layName.legendGroup.push(lClass);
}
_legendData.addItem(layName);
FlexGlobals.topLevelApplication.dispatchEvent(new Event("legendDataLoaded$"));
}
private function kmlLegendFault(evt:FaultEvent):void
{
trace(evt.message);
FlexGlobals.topLevelApplication.dispatchEvent(new Event("legendDataLoaded$"))
}
<?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="com.esri.ags.*"
xmlns:esri="http://www.esri.com/2008/ags"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import com.esri.ags.events.LayerEvent;
import com.esri.ags.layers.supportClasses.KMLScreenOverlay;
import com.esri.ags.layers.supportClasses.LayerLegendInfo;
import com.esri.ags.layers.supportClasses.LegendItemInfo;
import mx.controls.Alert;
import mx.rpc.AsyncResponder;
import mx.rpc.events.FaultEvent;
protected function kmllayer1_loadHandler(event:LayerEvent):void
{
KMLLayer(event.layer).getLegendInfos(new AsyncResponder(kmlLegendResult,kmlLegendFault,null));
}
private function kmlLegendResult(lInfos:Array, token:Object):void
{
var llInfo:LayerLegendInfo = lInfos[0] as LayerLegendInfo;
Alert.show(llInfo.legendItemInfos.length.toString());
for(var lii:int =0; lii < llInfo.legendItemInfos.length; lii++){
var lli:LegendItemInfo = llInfo.legendItemInfos[lii] as LegendItemInfo;
Alert.show( lli.label);
}
}
private function kmlLegendFault(evt:FaultEvent):void
{
trace(evt.message);
}
]]>
</fx:Script>
<ags:Map id="myMap"
openHandCursorVisible="false">
<esri:KMLLayer name="KML Layer" alpha="1" visible="true"
url="http://geocommons.com/overlays/119539.kml"
load="kmllayer1_loadHandler(event)"/>
</ags:Map>
</s:Application>
<?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="com.esri.ags.*"
xmlns:esri="http://www.esri.com/2008/ags"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import com.esri.ags.events.LayerEvent;
import com.esri.ags.layers.supportClasses.KMLScreenOverlay;
import com.esri.ags.layers.supportClasses.LayerLegendInfo;
import com.esri.ags.layers.supportClasses.LegendItemInfo;
import flash.utils.clearTimeout;
import flash.utils.setTimeout;
import mx.controls.Alert;
import mx.rpc.AsyncResponder;
import mx.rpc.events.FaultEvent;
private var timeOutVar:uint;
protected function kmllayer1_loadHandler(event:LayerEvent):void
{
timeOutVar = setTimeout(getKMLLegend, 100, event.layer); // wait for all feature layers to load
}
private function getKMLLegend(layer:KMLLayer):void
{
clearTimeout(timeOutVar);
layer.getLegendInfos(new AsyncResponder(kmlLegendResult,kmlLegendFault,null));
}
private function kmlLegendResult(lInfos:Array, token:Object):void
{
var llInfo:LayerLegendInfo = lInfos[0] as LayerLegendInfo;
Alert.show(llInfo.legendItemInfos.length.toString());
for(var lii:int =0; lii < llInfo.legendItemInfos.length; lii++){
var lli:LegendItemInfo = llInfo.legendItemInfos[lii] as LegendItemInfo;
Alert.show( lli.label);
}
}
private function kmlLegendFault(evt:FaultEvent):void
{
trace(evt.message);
}
]]>
</fx:Script>
<ags:Map id="myMap"
openHandCursorVisible="false">
<esri:KMLLayer name="KML Layer" alpha="1" visible="true"
url="http://geocommons.com/overlays/119539.kml"
load="kmllayer1_loadHandler(event)"/>
</ags:Map>
</s:Application>