Select to view content in your preferred language

Cannot get RollOver to work

490
0
09-25-2013 12:59 PM
DaviKucharski
Deactivated User
I have my map and layers declared below. The map comes up with my 1 graphic in the myGraphicsLocationsLayer. But when I move my mouse over the graphic, my doMyAlert function never fires. The doMyAlert just does an Alert.Show("here"); Am I missing something or doing something wrong.

<mx:Canvas id="myPanel" height="100%" width="100%">


    <esri:Map id="map" backgroundColor="0xFFFFFF" styleName="myMapStyle" mouseDown="onMouseDown(event);" panUpdate="onMapPanUpdate();" zoomUpdate="onMapZoomUpdate();" extentChange="callLater(onMapExtentChanged);" >
  <esri:lods>   
   <esri:LOD level="0" resolution="0.3515625" scale="147748799.285417" />
   <esri:LOD level="1" resolution="0.17578125" scale="73874399.6427087" />
   <esri:LOD level="2" resolution="0.087890625" scale="36937199.8213544" />
   <esri:LOD level="3" resolution="0.0439453125" scale="18468599.9106772" />
   <esri:LOD level="4" resolution="0.02197265625" scale="9234299.95533859" />
   <esri:LOD level="5" resolution="0.010986328125" scale="4617149.97766929" />
   <esri:LOD level="6" resolution="0.0054931640625" scale="2308574.98883465" />
   <esri:LOD level="7" resolution="0.00274658203125" scale="1154287.49441732" />
   <esri:LOD level="8" resolution="0.001373291015625" scale="577143.747208662" />
   <esri:LOD level="9" resolution="0.0006866455078125" scale="288571.873604331" />
   <esri:LOD level="10" resolution="0.00034332275390625" scale="144285.936802165" />
   <esri:LOD level="11" resolution="0.000171661376953125" scale="72142.9684010827" />
   <esri:LOD level="12" resolution="0.0000858306884765625" scale="36071.4842005414" />
   <esri:LOD level="13" resolution="0.0000429153442382813" scale="18035.7421002707" />
   <esri:LOD level="14" resolution="0.0000214576721191407" scale="9017.87105013534" />
   <esri:LOD level="15" resolution="0.0000107288360595703" scale="4508.93552506767" /> 
  </esri:lods>
  <esri:ArcGISDynamicMapServiceLayer id="basemap" url="{_BasemapHost + _BasemapService}" load="onMapServiceLoaded(event)" />
  <esri:GraphicsLayer id="myGraphicsColorOverlayLayer" />
  <esri:GraphicsLayer id="myGraphicsHatchedOverlayLayer" />
  <esri:GraphicsLayer id="myGraphicsRadiusLayer" />
  <esri:GraphicsLayer id="myGraphicsHighlightedGeographiesLayer" />
  <esri:GraphicsLayer id="myGraphicsSingleLocationLayer" />
  <esri:GraphicsLayer id="myGraphicsLocationsLayer">
   <esri:Graphic rollOver="doMyAlert()">
                         <esri:geometry>
                             <esri:MapPoint x="-87.9747" y="41.6604"/>
                         </esri:geometry>
                     </esri:Graphic>
  </esri:GraphicsLayer>
  <esri:GraphicsLayer id="myGraphicsCompetitionLayer" />
  <esri:GraphicsLayer id="myGraphicsSubZipLayer" />
    </esri:Map>
    </mx:Canvas>
    <mx:VBox id="legend" verticalScrollPolicy="auto" horizontalScrollPolicy="off" width="150" right="5" top="25" bottom="5" height="{this.height-30}" maxHeight="{this.height-30}" visible="false" backgroundColor="0xFFFFFF" borderSides="top left right bottom" borderColor="0xc0c0c0" borderThickness="1" fontSize="10">

    </mx:VBox>
    <mx:Button id="bLegend" icon="{imgExpand}" label="Legend" click="ToggleLegend();" themeColor="0x00FF00" width="150" right="5" top="5"  />
    <!--mx:ToggleButtonBar id="bb" horizontalGap="2" selectedIndex="0" themeColor="0x00FF00" right="160" top="5">
        <mx:dataProvider>
            <mx:Array>
                <mx:String>Streets</mx:String>
                <mx:String>Imagery</mx:String>
            </mx:Array>
        </mx:dataProvider>
    </mx:ToggleButtonBar-->
    <mx:Button id="bChangeBasemap" label="Change Basemap" click="pChangeBasemap.visible=!pChangeBasemap.visible;" themeColor="0x00FF00" right="160" top="5"  />
    <esri:Navigation id="navToolbar" map="{map}"/>

 <mx:Panel id="pChangeBasemap" title="Choose Your Basemap" layout="vertical" width="250" paddingTop="5" paddingRight="5" paddingBottom="5" paddingLeft="5" horizontalCenter="0" verticalCenter="0" visible="false">
  <mx:Label text="Basemaps" fontWeight="bold" />
  <mx:RadioButtonGroup id="rbgBasemaps" itemClick="handleBasemapClick(event);" selectedValue="{_SelectedBasemap}"/>
  <mx:VBox paddingLeft="5">
   <mx:RadioButton label="NSA Default Basemap" group="{rbgBasemaps}" value="0"/>
  </mx:VBox>
  <mx:VBox id="cBasemaps" paddingLeft="5" />

  <mx:Button label="Close" click="pChangeBasemap.visible=false;" />
 </mx:Panel>


  private function doMyAlert():void
  {
   Alert.show("here");
  }


The above is just a test that I could not get working, below is how I will try to implement any solution. The myGraphicsLocationsLayer has no attribute:

<mx:Canvas id="myPanel" height="100%" width="100%">


    <esri:Map id="map" backgroundColor="0xFFFFFF" styleName="myMapStyle" mouseDown="onMouseDown(event);" panUpdate="onMapPanUpdate();" zoomUpdate="onMapZoomUpdate();" extentChange="callLater(onMapExtentChanged);" >
  <esri:lods>   
   <esri:LOD level="0" resolution="0.3515625" scale="147748799.285417" />
   <esri:LOD level="1" resolution="0.17578125" scale="73874399.6427087" />
   <esri:LOD level="2" resolution="0.087890625" scale="36937199.8213544" />
   <esri:LOD level="3" resolution="0.0439453125" scale="18468599.9106772" />
   <esri:LOD level="4" resolution="0.02197265625" scale="9234299.95533859" />
   <esri:LOD level="5" resolution="0.010986328125" scale="4617149.97766929" />
   <esri:LOD level="6" resolution="0.0054931640625" scale="2308574.98883465" />
   <esri:LOD level="7" resolution="0.00274658203125" scale="1154287.49441732" />
   <esri:LOD level="8" resolution="0.001373291015625" scale="577143.747208662" />
   <esri:LOD level="9" resolution="0.0006866455078125" scale="288571.873604331" />
   <esri:LOD level="10" resolution="0.00034332275390625" scale="144285.936802165" />
   <esri:LOD level="11" resolution="0.000171661376953125" scale="72142.9684010827" />
   <esri:LOD level="12" resolution="0.0000858306884765625" scale="36071.4842005414" />
   <esri:LOD level="13" resolution="0.0000429153442382813" scale="18035.7421002707" />
   <esri:LOD level="14" resolution="0.0000214576721191407" scale="9017.87105013534" />
   <esri:LOD level="15" resolution="0.0000107288360595703" scale="4508.93552506767" /> 
  </esri:lods>
  <esri:ArcGISDynamicMapServiceLayer id="basemap" url="{_BasemapHost + _BasemapService}" load="onMapServiceLoaded(event)" />
  <esri:GraphicsLayer id="myGraphicsColorOverlayLayer" />
  <esri:GraphicsLayer id="myGraphicsHatchedOverlayLayer" />
  <esri:GraphicsLayer id="myGraphicsRadiusLayer" />
  <esri:GraphicsLayer id="myGraphicsHighlightedGeographiesLayer" />
  <esri:GraphicsLayer id="myGraphicsSingleLocationLayer" />
  <esri:GraphicsLayer id="myGraphicsLocationsLayer"  />
  <esri:GraphicsLayer id="myGraphicsCompetitionLayer" />
  <esri:GraphicsLayer id="myGraphicsSubZipLayer" />
    </esri:Map>
    </mx:Canvas>
    <mx:VBox id="legend" verticalScrollPolicy="auto" horizontalScrollPolicy="off" width="150" right="5" top="25" bottom="5" height="{this.height-30}" maxHeight="{this.height-30}" visible="false" backgroundColor="0xFFFFFF" borderSides="top left right bottom" borderColor="0xc0c0c0" borderThickness="1" fontSize="10">

    </mx:VBox>
    <mx:Button id="bLegend" icon="{imgExpand}" label="Legend" click="ToggleLegend();" themeColor="0x00FF00" width="150" right="5" top="5"  />
    <!--mx:ToggleButtonBar id="bb" horizontalGap="2" selectedIndex="0" themeColor="0x00FF00" right="160" top="5">
        <mx:dataProvider>
            <mx:Array>
                <mx:String>Streets</mx:String>
                <mx:String>Imagery</mx:String>
            </mx:Array>
        </mx:dataProvider>
    </mx:ToggleButtonBar-->
    <mx:Button id="bChangeBasemap" label="Change Basemap" click="pChangeBasemap.visible=!pChangeBasemap.visible;" themeColor="0x00FF00" right="160" top="5"  />
    <esri:Navigation id="navToolbar" map="{map}"/>

 <mx:Panel id="pChangeBasemap" title="Choose Your Basemap" layout="vertical" width="250" paddingTop="5" paddingRight="5" paddingBottom="5" paddingLeft="5" horizontalCenter="0" verticalCenter="0" visible="false">
  <mx:Label text="Basemaps" fontWeight="bold" />
  <mx:RadioButtonGroup id="rbgBasemaps" itemClick="handleBasemapClick(event);" selectedValue="{_SelectedBasemap}"/>
  <mx:VBox paddingLeft="5">
   <mx:RadioButton label="NSA Default Basemap" group="{rbgBasemaps}" value="0"/>
  </mx:VBox>
  <mx:VBox id="cBasemaps" paddingLeft="5" />

  <mx:Button label="Close" click="pChangeBasemap.visible=false;" />
 </mx:Panel>


I then have a function that createst the graphics for the layer. You can see I am trying to add an EventListener
    
public function setStoreOverlay(storeName:String, storeNumber:String, radius:Number, latitude:Number, longitude:Number, showName:Number, showNumber:Number, showRadius:Number, color:Number, shape:String, fontName:String, fontColor:Number, fontSize:Number, fontStyle:Number, fontLineColor:Number):void
     {     
      var storeGraphic:Graphic = new Graphic(new MapPoint(longitude, latitude));  
      var myPointSymbol:SimpleMarkerSymbol;
       myPointSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 10, color, 3);
      storeGraphic.symbol = myPointSymbol;        

      storeGraphic.addEventListener(MouseEvent.ROLL_OVER,doMyAlert);
            
   myGraphicsLocationsLayer.add(storeGraphic);  
}


Then my doMyAlert function looks like:
  private function doMyAlert(event:MouseEvent):void
  {
   const graphic:Graphic = event.target as Graphic;
   if (graphic)
   {
    Alert.show(graphic.id);
   }
   else
   {
    Alert.show("no");
   }
  }
Tags (2)
0 Kudos
0 Replies