Jordan, You may want to try to useCapture on the event listener:graphic.addEventListener(MouseEvent.CLICK, graphicClicked, true);As far as an event that is launched when the infowindow is shown. Sure there is:map.infoWindow.addEventListener(Event.OPEN, some function);
graphic.addEventListener(MouseEvent.CLICK, graphicClicked, true);
map.infoWindow.addEventListener(Event.OPEN, some function);
Jordan, Sure here is the updated script portion of that sample: import com.esri.ags.Graphic; import com.esri.ags.components.ContentNavigator; import com.esri.ags.events.QueryEvent; import com.esri.ags.geometry.MapPoint; import com.esri.ags.portal.PopUpRenderer; import com.esri.ags.portal.supportClasses.PopUpFieldFormat; import com.esri.ags.portal.supportClasses.PopUpFieldInfo; import com.esri.ags.portal.supportClasses.PopUpInfo; import com.esri.ags.utils.GraphicUtil; import mx.collections.ArrayList; import mx.controls.Alert; import mx.events.FlexEvent; import mx.rpc.events.FaultEvent; import spark.events.IndexChangeEvent; private var contentNavigator:ContentNavigator = new ContentNavigator(); protected function createPopupRenderer_initializeHandler(event:FlexEvent):void { var field1:PopUpFieldInfo = new PopUpFieldInfo(); field1.fieldName = "MED_AGE"; field1.label = "Median Age: "; field1.visible = true; var field2:PopUpFieldInfo = new PopUpFieldInfo(); field2.fieldName = "POP2007"; field2.format = new PopUpFieldFormat(); field2.label = "Population: "; field2.visible = true; var popUpInfo:PopUpInfo = new PopUpInfo(); popUpInfo.title = "{STATE_NAME}"; popUpInfo.popUpFieldInfos = [ field1, field2 ]; popUpInfo.showZoomToButton = false; var popUpRenderer:ClassFactory = new ClassFactory(PopUpRenderer); popUpRenderer.properties = { "popUpInfo": popUpInfo }; statesGraphicsLayer.infoWindowRenderer = popUpRenderer; } protected function queryTask_executeCompleteHandler(event:QueryEvent):void { if (event.featureSet.features) { for each(var gra:Graphic in event.featureSet.features) { gra.addEventListener(MouseEvent.CLICK, selectStateFromList); } statesGraphicsLayer.graphicProvider = event.featureSet.features; statesList.dataProvider = new ArrayList(event.featureSet.features); map.extent = GraphicUtil.getGraphicsExtent(event.featureSet.features); } } protected function esriService_faultHandler(event:FaultEvent):void { Alert.show("Error: " + event.fault.faultString, "Error code: " + event.fault.faultCode); } protected function statesList_changeHandler(event:IndexChangeEvent):void { statesList.ensureIndexIsVisible(statesList.selectedIndex); var currentGraphic:Graphic = List(event.currentTarget).selectedItem as Graphic; var mapPoint:MapPoint = currentGraphic.geometry.extent.center; contentNavigator.dataProvider = new ArrayList([ currentGraphic ]); map.infoWindowContent = contentNavigator; map.zoomTo(currentGraphic.geometry); map.infoWindow.show(mapPoint); } protected function selectStateFromList(event:MouseEvent):void { var gr:Graphic = Graphic(event.target); statesList.selectedItem = gr; statesList.ensureIndexIsVisible(statesList.dataProvider.getItemIndex(gr)); }Don't forget to click the Mark as answer check on this post and to click the top arrow (promote).Follow these steps as shown in the below graphic:
import com.esri.ags.Graphic; import com.esri.ags.components.ContentNavigator; import com.esri.ags.events.QueryEvent; import com.esri.ags.geometry.MapPoint; import com.esri.ags.portal.PopUpRenderer; import com.esri.ags.portal.supportClasses.PopUpFieldFormat; import com.esri.ags.portal.supportClasses.PopUpFieldInfo; import com.esri.ags.portal.supportClasses.PopUpInfo; import com.esri.ags.utils.GraphicUtil; import mx.collections.ArrayList; import mx.controls.Alert; import mx.events.FlexEvent; import mx.rpc.events.FaultEvent; import spark.events.IndexChangeEvent; private var contentNavigator:ContentNavigator = new ContentNavigator(); protected function createPopupRenderer_initializeHandler(event:FlexEvent):void { var field1:PopUpFieldInfo = new PopUpFieldInfo(); field1.fieldName = "MED_AGE"; field1.label = "Median Age: "; field1.visible = true; var field2:PopUpFieldInfo = new PopUpFieldInfo(); field2.fieldName = "POP2007"; field2.format = new PopUpFieldFormat(); field2.label = "Population: "; field2.visible = true; var popUpInfo:PopUpInfo = new PopUpInfo(); popUpInfo.title = "{STATE_NAME}"; popUpInfo.popUpFieldInfos = [ field1, field2 ]; popUpInfo.showZoomToButton = false; var popUpRenderer:ClassFactory = new ClassFactory(PopUpRenderer); popUpRenderer.properties = { "popUpInfo": popUpInfo }; statesGraphicsLayer.infoWindowRenderer = popUpRenderer; } protected function queryTask_executeCompleteHandler(event:QueryEvent):void { if (event.featureSet.features) { for each(var gra:Graphic in event.featureSet.features) { gra.addEventListener(MouseEvent.CLICK, selectStateFromList); } statesGraphicsLayer.graphicProvider = event.featureSet.features; statesList.dataProvider = new ArrayList(event.featureSet.features); map.extent = GraphicUtil.getGraphicsExtent(event.featureSet.features); } } protected function esriService_faultHandler(event:FaultEvent):void { Alert.show("Error: " + event.fault.faultString, "Error code: " + event.fault.faultCode); } protected function statesList_changeHandler(event:IndexChangeEvent):void { statesList.ensureIndexIsVisible(statesList.selectedIndex); var currentGraphic:Graphic = List(event.currentTarget).selectedItem as Graphic; var mapPoint:MapPoint = currentGraphic.geometry.extent.center; contentNavigator.dataProvider = new ArrayList([ currentGraphic ]); map.infoWindowContent = contentNavigator; map.zoomTo(currentGraphic.geometry); map.infoWindow.show(mapPoint); } protected function selectStateFromList(event:MouseEvent):void { var gr:Graphic = Graphic(event.target); statesList.selectedItem = gr; statesList.ensureIndexIsVisible(statesList.dataProvider.getItemIndex(gr)); }
for (var i:int = 0; i < result.Intersections.length; i++) { var currentInter:Intersection = result.Intersections.getItemAt(i) as Intersection; intersections.addItem(currentInter); var graphic:Graphic = currentInter.createGraphic(); var iwr:ClassFactory = new ClassFactory(IntersectionInfoWindowRenderer); iwr.properties = {intersection: currentInter}; graphic.infoWindowRenderer = iwr; graphic.addEventListener(MouseEvent.CLICK, graphicClicked); }
Jordan, You can display a popup programatically by following this code sample:http://resources.arcgis.com/en/help/flex-api/samples/01nq/01nq0000008v000000.htm
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.