I’ve got a very simple project in FlashBuilder 4.5. It’s a mobile application of type ViewNavigatorApplication with a single view, MapView. In the MapView.mxml file, I’ve got a Flex component of type Map declared in xml.
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" name="CatBusMapView">
<fx:Script>
<![CDATA[
import com.esri.ags.Map;
....
]]>
</fx:Script>
<fx:Declarations>
....
</fx:Declarations>
<esri:Map id="cbm">
...
</esri:Map>
</s:View>
In this same project, I’ve an actionscript class called UserGeolocation. In this class, I’m attempting to get a reference to this map component.
So far, I can get a reference to the top-level application, its ViewNavigator and the NavigationStack of said ViewNavigator. However, I cannot find a way to access the MapView, much less the map I’ve declared within it.
I’m aware of methods like firstView() and activeView(), but I want an absolute solution, one that retrieves the view regardless of whether or not it’s first or active. I’ve tried navigator.getChildByName(“MapView”) with no luck.
Just to underscore the original intent of the question: I want an absolute reference to a View in a ViewNavigatorApplication. I’m surprised there’s no clear way of doing this in the API, since it seems common practice to put Flex components in Views, in the form of declarative MXML. Existing methods that manipulate the stack aren’t helpful in this regard, because they are either a) conditional upon the active or first view, or b) affect the visual presentation of the application.
There are three general solutions that have been suggested which, oddly enough, focus on problems engendered by multiple stacks in TabbedViewNavigatorApplication and don’t mention the ViewNavigatorApplication.
I opted for the first.