Quiero hacer una aplicación para android con Flex 4.6, y lo que tiene que hacer es interactuar con un mapa de google.
Para ello, en la MXML principal creo un mapa y lo planto, después desde otro MXML tengo una barra con botones que deben interactuar con el mapa creado en el MXML principal.
Para cambiar el tipo de mapa por ejemplo creo un botón y le digo que al hacer click me dispare un evento. Luego en el MXML lo debe recoger para que el mapa cambie. Pues esto es justo lo que no sé hacer y he probado mil cosas.
Os pongo el código del MXML principal, el MXML de la botonera y una captura de pantalla para que lo veais de un golpe. A ver si me podeis decir cómo hacer esto para poder continuar!


Eventos.mxml (principal)
Código :
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:contenedores="todo.contenedores.*" xmlns:clases="todo.clases.*" xmlns:maps="com.google.maps.*" creationComplete="init()"> <fx:Script> <![CDATA[ import com.google.maps.MapType; // import todo.contenedores.bottom_bar; public function init():void{ addEventListener(MouseEvent.CLICK, mainButtonClicked); } // mainButtonClicked ejecuta la función indicada dependiendo del botón que haya lanzado el evento. public function mainButtonClicked(event:Event):void { var selectedButton:String = String(event.target.id); switch (selectedButton) { case "b_relieve": map.setMapType(MapType.PHYSICAL_MAP_TYPE); break; case "b_normal": map.setMapType(MapType.NORMAL_MAP_TYPE); break; case "b_hibrido": map.setMapType(MapType.HYBRID_MAP_TYPE); break; case "b_satelite": map.setMapType(MapType.SATELLITE_MAP_TYPE); break; } } ]]> </fx:Script> <!-- Creación del mapa. --> <clases:MapCentral id="map" width="100%" height="100%" /> <!--Inclusión de la barra de botones--> <contenedores:bottom_bar x="71" y="710"/> </s:Application>
Barra de botones: buttom_bar.mxml
Código :
<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"> <s:HGroup> <s:CalloutButton id="b_mapas" label="Tipo de Mapa" verticalPosition="before"> <s:calloutContent> <s:BorderContainer> <s:layout> <s:VerticalLayout paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" gap="10"/> </s:layout> <s:Button label="Relieve" id="b_relieve" click="{this.dispatchEvent(new MouseEvent(MouseEvent.CLICK, false))}" /> <s:Button label="Satélite" id="b_satelite" click="{this.dispatchEvent(new MouseEvent(MouseEvent.CLICK, false))}" /> <s:Button label="Híbrido" id="b_hibrido" click="{this.dispatchEvent(new MouseEvent(MouseEvent.CLICK, false))}" /> <s:Button label="Mapa" id="b_normal" click="{this.dispatchEvent(new MouseEvent(MouseEvent.CLICK, false))}" /> </s:BorderContainer> </s:calloutContent> </s:CalloutButton> <!--Otro grupo de botones--> <s:CalloutButton id="b_otro" label="otro boton" verticalPosition="before"> <s:calloutContent> <s:BorderContainer> <s:layout> <s:VerticalLayout paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" gap="10"/> </s:layout> <s:Button label="otro"/> <s:Button label="otro"/> <s:Button label="otro"/> <s:Button label="otro"/> <s:Button label="otro"/> </s:BorderContainer> </s:calloutContent> </s:CalloutButton> </s:HGroup> </s:Group>
Gracias de antemano por la ayuda!!