Thank you for the reply, I saw a similar technique in the javascript examples. A little more searching and i found that a map click event which started from a graphic has the graphic's symbol as the target, so I get event.target.parent as Graphic
  private static function mapMouseUpHandler(event:MouseEvent):void
  {
   if( _mouseDrag == false) {
    if (event.target.parent is Graphic) 
    {
     var graphic:Graphic = event.target.parent as Graphic;
     var idx:int = int(graphic.attributes["Index"]);
     Tags.getInstance().onClickTag(idx);
     return;
    }
    var mouseMapPoint:MapPoint = map.toMapFromStage(event.stageX, event.stageY);
    var x:Number = mouseMapPoint.x;
    var y:Number = mouseMapPoint.y;
    mapLocationQuery(map, x, y);
   }
  }