El miniprograma consta de un mapa de googlemaps <maps:Map /> con un <mx:Canvas> con funcionalidades dentro (resumiendo).
Lo que quiero es usar ese Canvas en otro programa principal donde tengo definido otro <maps:Map /> y otras muchas funcionalidees,El problema es que el Canvas por si mismo sin <maps:Map> no funciona ya que usa métodos del objeto map. Pero como yo en mi programa principal ya tengo un <maps:Map> el componente no necesita tener otro dentro de su código, sino al usarlo estaría duplicando ese objeto, y si lo elimino del componente da error porque no reconoce cada vez que aparece map.un_método en el código.
Para que quede más claro pongo el código resumido:
La estructura del miniprograma que sí funciona es: Prueba.mxml
Código :
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:maps="com.google.maps.*" layout="absolute" width="100%" height="100%"> <maps:Map id="map" key="mi-key" mapevent_mapready="onMapReady(event)" width="100%" height="100%" /> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="200"> ----Algunos VBOX y HBOX---- </mx:Canvas> <mx:Script> <![CDATA[ import com.google.maps.*; map.setCenter(new LatLng(42.819580715795915,-7.789306640625), 6, MapType.NORMAL_MAP_TYPE); /** Resto de código **/ ]]> </mx:Script> </mx:Application>
La forma en que lo he convertido a un componente: componentes/Componente1.mxml
Código :
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="200"> -----HBOX y VBOX--- <mx:Script> <![CDATA[ import com.google.maps.*; map.setCenter(new LatLng(42.819580715795915,-7.789306640625), 6, MapType.NORMAL_MAP_TYPE); /** ERROR Acceso a una propiedad map no definida **/ ]]> </mx:Script> </mx:Canvas>
Y por útimo el programa principal donde quiero usar el componente creado.
Código :
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:maps="com.google.maps.*" xmlns:c="componentes.*" layout="absolute" width="100%" height="100%" viewSourceURL="srcview/index.html"> <maps:Map id="map" key="mi-key" mapevent_mapready="onMapReady(event)" width="100%" height="100%" /> <c:Componente1/> /** Resto del programa y funcionalidades que ya contenía**/ </mx:Application>
¿Qué hago mal? ¿Como transformo el miniprograma a un componente que no contenga un map pero se lo pueda pasar de alguna forma desde el programa principal al componente ya que lo necesita?
Gracias, un saludo.