Select to view content in your preferred language

How do you populate Feature.layerDetails

985
2
04-26-2011 11:41 AM
WaltBulawa
Emerging Contributor
After the following lines:

private var myFeatureLayer:FeatureLayer;
myFeatureLayer = new FeatureLayer(url_of_myLayer);

Looking at the myFeatureLayer.layerDetails in the debugger shows a null for its value.

How would I get layerDetails populated for this feature layer?  Any action script code (non-xml) example to show this would be very much appreciated.  Thanks.
Tags (2)
0 Kudos
2 Replies
RobertScheitlin__GISP
MVP Emeritus
Walt,

   You have to wait for the layer to be loaded.

                            private function getMyLayerDeatils():void{
                                if (myFeatureLayer && !myFeatureLayer.loaded)
    {
     myFeatureLayer.addEventListener(LayerEvent.LOAD, myFeatureLayer_loadHandler);
     function myFeatureLayer_loadHandler(event:LayerEvent):void
     {
      getMyLayerDeatils();
     }
     return;
    }
                                //Do something here
                            }
0 Kudos
WaltBulawa
Emerging Contributor
Thank you Robert for your help.  With your help I created the following which works:

myFeatureLayer = new FeatureLayer(url_of_myLayer);
myFeatureLayer.addEventListener(LayerEvent.LOAD,getLayerDetails);

and then:

private function getLayerDetails(event:LayerEvent):void
{
   var thisLayer:FeatureLayer = event.layer as FeatureLayer;
   myLayerDetails = thisLayer.layerDetails;
   myLayerFieldsArray = myLayerDetails.fields;
   if (myLayerFieldsArray.length > 0)
   {
      for (var j:int = 0; j < myLayerFieldsArray.length; j++)
      {
         myFieldsList.addItem(myLayerFieldsArray.name);
      }
    }
}
0 Kudos