Mouse Over
View live sample | Download as a zip file
Description
Use "MOUSE_OVER" to write an event when the mouse moved inside the defined area, and use "MOUSE_OUT" to write an event when the mouse moved out of the defined area.
How To Use
Copy and modify the codes below to meet your needs.
Code
                                <?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" minWidth="955" minHeight="600"
			   xmlns:sgw="library://www.supergeotek.com/sgw"
			   initialize="application1_initializeHandler(event)">
	<fx:Script>
 
		<![CDATA[
			import Core.ICommand;
			import Core.IDisplayTransformation;
			import Core.ILayer;
			import Core.ITool;
			import Geometry.Envelope;
			import Geometry.LineString;
			import Geometry.LinearRing;
			import Geometry.Point;
			import Geometry.Polygon;
			import MapLayer.MapCachedLayer;
			import MapLayer.MapLayer;
			import MapLayer.MapLayerEvents;
			import MapLayer.MapLayerInner;
			import Tool.PanTool;
			import flash.display.Graphics;
			import flash.events.Event;
			import flash.events.IOErrorEvent;
			import flash.events.MouseEvent;
			import flash.net.URLLoader;
			import flash.net.URLRequest;
			import mx.collections.ArrayCollection;
			import mx.containers.Canvas;
			import mx.controls.Alert;
			import mx.controls.Image;
			import mx.events.FlexEvent;
			import mx.utils.StringUtil;
			import spark.components.BorderContainer;
			import spark.components.HGroup;
			import spark.components.Label;
			import spark.components.Panel;
			import spark.components.RadioButton;
			import spark.components.RadioButtonGroup;
			import spark.components.VGroup;
			
			private var pg:Polygon = null;
			private var m_GL:BorderContainer = null;
			
			protected function application1_initializeHandler(event:FlexEvent):void
			{
				var pLyr:MapLayer = new MapLayer();
				pLyr.addEventListener(MapLayerEvents.LOADED, maptilelayer1_LoadedHandler);
				pLyr.Name = "SGW";
				pLyr.Title = "SGW";
				pLyr.ResourcePath="http://sgs.supergeo.com.tw/wcp/Agent.aspx";
			}
			
			protected function maptilelayer1_LoadedHandler(vEvent:MapLayerEvents):void
			{
				var pLyr:MapLayer = vEvent.currentTarget as MapLayer;
				var pExt:Envelope = pLyr.Extent;
				oMapBase.AddLayer(pLyr);
				var pTrans:IDisplayTransformation = new LevelTransformation(256 / (pExt.Right - pExt.Left), 0, 15);
				oMapBase.Transformation = pTrans as IDisplayTransformation;
				
				var pExt1:Envelope = new Envelope(-10.278113, 61.939282, 34.180855, 35.526159) as Envelope;
				oMapBase.ZoomMapTo(pExt1);
				oMapBase.RefreshMap(true);
				var pTl1:PanTool = new PanTool(true, true);
				oMapBase.SelectMapTool(pTl1);
				//Show the point layer attribute in text label
				m_GL = new BorderContainer();
				m_GL.left = 0;
				m_GL.top = 0;
				m_GL.width = 0;
				m_GL.height = 0;
				oMapBase.addElement(m_GL);
				DisParFea();
				
				//add map base event
				oMapBase.addEventListener(MapControlEvents.REBUILT,UU);
			}
			
			protected function UU(vEvent:Event):void
			{
				DisParFea();
			}
			
			protected function DisParFea():void{
				//get the layers
				var pLayer:MapLayer = oMapBase.GetLayer(0) as MapLayer;
				
				var pLayer2:MapLayerInner = pLayer.MapLayers[0];//get the first layer
				
				//SQL query
				pLayer2.ExecuteQuery("[CAPALT] = 0", false, req, null);
			}
			
			private function req(vEvent:Event):void 
			{
				var pDoc:XML = new XML(vEvent.target.data as String);
				var pNodes:XMLList = pDoc.child("Feature");
				
				//clear the last time render
				if (m_GL.numElements > 0)
					m_GL.removeAllElements();
				
				m_GL.contentGroup.graphics.clear();
				
				for each (var pNode:XML in pNodes)
				{
					var pGeoms:XMLList = pNode.child("Geometry");
					if (pGeoms != null)
					{
						var pGeom:XML = pGeoms[0];
						var sWKT:String = pGeom.text();
						
						m_GL.contentGroup.graphics.lineStyle(0,0x000000,1);
						
						if (sWKT.substr(0, 5) == "POINT")
						{
							var po:Geometry.Point = new Geometry.Point(0, 0);
							po.ImportFromWKT(sWKT);
							//Draw Points on the map
							var pt2:Geometry.Point = oMapBase.FromMapPoint(po.X,po.Y) as Geometry.Point;
							
							if (pt2.X < 820 && pt2.X > 20 && pt2.Y < 500 && pt2.Y > 40){
								
								var img1:Image = new Image();
								img1.source = "./images/mark.png";
								img1.left = pt2.X-5;
								img1.top = pt2.Y-5;
								
								img1.width=20;
								img1.height=20;
								img1.useHandCursor=true;
								img1.mouseChildren=false ;
								img1.buttonMode=true;
								
								//get the value to popout information
								var pValues2:XMLList = pNode.child("Values").children();
								var pValue:XML = pValues2[4]; //the city name
								//MOUSE_OVER EVENT
								img1.addEventListener(MouseEvent.MOUSE_OVER, function():void{
									pMouOv();
								},false);
								//MOUSE_OUT EVENT
								img1.addEventListener(MouseEvent.MOUSE_OUT, function():void{
									pMout();
								},false);
								
								m_GL.addElement(img1);
							}
						}
						
					}
				}
				
			}
			
			private function pMouOv():void 
			{
				//Use the mouse xy to query the city data
				var cltpt:Geometry.Point = new Geometry.Point(oMapBase.mouseX, oMapBase.mouseY);
				var pt1:Geometry.Point = oMapBase.ToMapPoint(cltpt.X, cltpt.Y);
				var pLayer:MapLayer = oMapBase.GetLayer(0) as MapLayer;
				var pLayer2:MapLayerInner = pLayer.MapLayers[0]; //the first layer
				var pgn:Polygon = new Polygon();
				var R:Number = 1;
				
				for (var a:int = 0; a <= 360; a += 30) 
				{
					var xp:Number = pt1.X + Math.sin(a * Math.PI / 180.0) * R;
					var yp:Number = pt1.Y + Math.cos(a * Math.PI / 180.0) * R;
					pgn.ExteriorRing.AddPoint(new Geometry.Point(xp, yp));
				}
				
				pLayer2.ExecuteQuery(pgn.ExportToWKT(), true, GetXYInfo, null);
			}
			
			private function GetXYInfo(vEvent:Event):void 
			{
				var pDoc:XML = new XML(vEvent.target.data as String);
				var pNodes:XMLList = pDoc.child("Feature");
				
				pBdr.removeAllElements();
				
				for each (var pNode:XML in pNodes)
				{
					var pGeoms:XMLList = pNode.child("Geometry");
					if (pGeoms != null)
					{
						var pGeom:XML = pGeoms[0];
						var sWKT:String = pGeom.text();
						if (sWKT.substr(0, 5) == "POINT")
						{
							var po:Geometry.Point = new Geometry.Point(0, 0);
							po.ImportFromWKT(sWKT);
							var po1:Geometry.Point = oMapBase.FromMapPoint(po.X,po.Y);
							var pValues2:XMLList = pNode.child("Values").children();
							//for each (var pValue2 : XML in pValues2)
							var pValue:XML = pValues2[4]; 
							var pRstL:Label = new Label();
							
							pRstL.text = "";
							pRstL.text = "\nLong:" + po.X + "\n" + "Lat:" + po.Y+ "\n" + pValue;
							
							pBdr.x = po1.X+20;
							pBdr.y = po1.Y-22;
							pBdr.addElement(pRstL);
							
							//add image for closing it
							var img1:Image = new Image();
							img1.source = "./images/Close.png";
							
							img1.right = 0;
							img1.width=13;
							img1.height=13;
							img1.useHandCursor=true;
							img1.mouseChildren=false ;
							img1.buttonMode=true;
							img1.addEventListener(MouseEvent.CLICK, closeShowTipEvent,false);
							
							pBdr.addElement(img1);
							pBdr.visible = true;
						}
					}
				}
			}
			
			protected function closeShowTipEvent(event:MouseEvent):void{    
				pBdr.visible = false;
			}
			
			private function pMout():void 
			{
				
				pBdr.removeAllElements();
				pBdr.visible = false;
				
			}
			
		]]>
		
	</fx:Script>
	
	<fx:Declarations>
		
	</fx:Declarations>
	
	<sgw:MapControl id="oMapBase" width="100%" height="100%">
	</sgw:MapControl>
	<sgw:ToolbarControl id="oToolbar" width="100%" height="40" Map="{oMapBase}">
	</sgw:ToolbarControl>
	<s:BorderContainer id="pBdr" visible="false" x="9" y="13" width="176" height="63"   backgroundColor="#FFFFFF" borderWeight="2" cornerRadius="5" alpha="0.85">
		<s:VGroup x="4" y="22" width="142">
		</s:VGroup>           
	</s:BorderContainer>
	<s:Label x="17" y="13" text="SuperGIS Server Flex Website Sample&#xd;--- Move mouse over icons to get info" fontWeight="bold" fontSize="30" color="#016B09" backgroundColor="#9ACD32" backgroundAlpha="0.7"/>
</s:Application>