如果你要使用GraphicsLayer这个绘图层,那么你需要注意自己的布局的模式不可以使用:layout="absolute"
如果你使用了这个布局,那么你的GraphicsLayer层可能会无法使用:比如下面的程序就是因为设置了 layout="absolute"而无法使用Draw工具去画点,线,以及面的。
<?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"
pageTitle="DrawToolbar"
styleName="plain"
layout="absolute"
>
<mx:Script>
<![CDATA[
import mx.events.ItemClickEvent;
private function itemClickHandler(event:ItemClickEvent):void {
switch(event.label)
{
case "Point":
{
drawToolBar.activate(Draw.MAPPOINT);
break;
}
case "Multipoint":
{
drawToolBar.activate(Draw.MULTIPOINT);
break;
}
case "Line":
{
drawToolBar.activate(Draw.LINE);
break;
}
case "Polyline":
{
drawToolBar.activate(Draw.POLYLINE);
break;
}
case "FreeHand Polyline":
{
drawToolBar.activate(Draw.FREEHAND_POLYLINE);
break;
}
case "Rectangle":
{
drawToolBar.activate(Draw.EXTENT);
break;
}
}
}
]]>
</mx:Script>
<!-- Symbol for all points-->
<esri:SimpleMarkerSymbol id="sms" style="square" color="0xFF0000" size="11"/>
<!-- Symbol for all lines -->
<esri:SimpleLineSymbol id="sls" style="dash" color="0xFF0000" width="2"/>
<!-- Symbol for all polygons (note: rectangle only supports solid fill style)-->
<esri:SimpleFillSymbol id="sfs" style="diagonalcross">
<esri:outline>
<esri:SimpleLineSymbol color="0xFF0000" width="2" />
</esri:outline>
</esri:SimpleFillSymbol>
<esri:Draw id="drawToolBar" map="{myMap}" graphicsLayer="{myGrapicLayer}" markerSymbol="{sms}" lineSymbol="{sls}" fillSymbol="{sfs}"/>
<mx:ControlBar width="100%" horizontalAlign="center">
<mx:ToggleButtonBar id="tbb"
creationComplete="tbb.selectedIndex =-1"
itemClick="itemClickHandler(event)"
valueCommit="if(tbb.selectedIndex==-1){drawToolBar.deactivate()}"
toggleOnClick="true"
>
<mx:dataProvider>
<mx:Array>
<mx:String>Point</mx:String>
<mx:String>Multipoint</mx:String>
<mx:String>Line</mx:String>
<mx:String>Polyline</mx:String>
<mx:String>FreeHand Polyline</mx:String>
<mx:String>Polygon</mx:String>
<mx:String>Freehand Polygon</mx:String>
<mx:String>Rectangle</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:ToggleButtonBar>
</mx:ControlBar>
<esri:Map id="myMap">
<esri:extent>
<esri:Extent xmin="15" ymin="25" xmax="40" ymax="70">
<esri:SpatialReference wkid="4326"/>
</esri:Extent>
</esri:extent>
<esri:ArcGISDynamicMapServiceLayer
url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"/>
<esri:GraphicsLayer id="myGrapicLayer"/>
</esri:Map>
<mx:TraceTarget includeCategory="true" includeLevel="true"/>
</mx:Application>