currentTarget和targe
" 直入主题:<esri:Mapid=""mapControl""width=""100%"" height=""100%"" logoVisible=""false""scaleBarVisible=""false""zoomSliderVisible=""false"" openHandCursorVisible=""false""> <esri:extent> <esri:Extentxmin=""13426784.5800013""xmax=""13431551.9204903""ymin=""3933880.12765432""ymax=""3939185.91147929""/> </esri:extent> <customLayer:GoogleMapServiceLayerid=""googleMapService""/> <esri:GraphicsLayerid=""fisheryLayer""alpha=""1""/> </esri:Map> 如上添加GoogleMapServiceLayer底图,然后添加了一GraphicLayer图层,以下面的方式<fx:Declarations> <esri:Queryid=""query""outSpatialReference=""{mapControl.spatialReference}""returnGeometry=""true""where=""1=1""/> <esri:QueryTaskid=""queryTask""showBusyCursor=""true""useAMF=""false""/> <esri:SimpleFillSymbolid=""sfsIdentify""color=""0xE6C823""alpha=""1""style=""solid""> <esri:SimpleLineSymbolcolor=""0x6E6E6E""width=""1""alpha=""1""style=""solid""/> </esri:SimpleFillSymbol> </fx:Declarations> queryTask.url= ""http://服务器IP地址/ArcGIS/rest/services/fishing/MapServer/1""""; query.outFields=[""Areaq""]; queryTask.execute(query,newAsyncResponder(onPolygonResult,onFault)); privatefunctiononPolygonResult(featureSet:FeatureSet,token:Object=null):void { if(featureSet.features.length==0) { Alert.show(""无数据!""); } else { for(vari:int=0;i<featureSet.features.length;i++) { varg:Graphic=featureSet.features[i]; g.symbol=polygonSym; g.useHandCursor=true; g.buttonMode=true; g.addEventListener(MouseEvent.CLICK,polygonClickHandler); fisheryLayer.add(g); } } }往GraphicLayer中加载面要素,并且给每个面要素注册了Click事件监听,一般是通过点击地图drag来拖动地图的,但当鼠标点击到面要素后却拖动不了地图。 后在高人指点下,略去每个要素Click事件的监听,改成注册GraphicLayer的Click事件的监听,如:<esri:GraphicsLayerid=""fisheryLayer""alpha=""1""click=""polygonClickHandler(event);""/>这样即使点击到面要素上也可以拖动地图了。 开始在听到改用GraphicLayer的Click事件监听的时候还疑惑,两个不同组件的Click事件应该不一样的,比如GraphicLayerClick后获取的是图层对象,要素Click后应该获取的是Graphic对象,这样改后怎还可以正常如常的运行呢?原来事件对象都有两个属性,一个是currentTarget,一个是target,currentTarget获取到的是注册事件的那个组件,target获取到的则是鼠标点击的那个组件,所以在这个问题中用varpg:Graphic=event.targetasGraphic;便可以获取所点的Graphic对象注:并且对GraphicsLayer注册监听事件,效率更高。 今天收获很大,一直以来currentTarget和target区别一直都不清楚,今天很形象的理解了。"