perfecto ummagumma,
ummagumma escribió:
...
El boton debe activar la posibilidad de que el usuario pueda crear marcadores, esa parte ya la tengo,
...
Ok,
ummagumma escribió:
...
pero viene el problema... cuando el usuario de clic sobre el mapa en X lugar donde quiere crear un marcador, necesito que se abra un movie clip imitando un pop up donde debe digitar el titulo del sitio de interes a registrar y va a tener un boton de examinar donde va a cargar la imagen, estos datos, junto con las coordenadas del punto donde clickó van a ser guardadas en una base de datos desde donde mediante php voy a generar un XML con toda la info para que al ser llamado por el flash se van a posicionar los marcadores y toda la info que los usuarios hayan guardado
...
Como siempre, vamos con la lógica primero y luego vemos cómo hacer lo q necesitamos. La idea creo q podría andar así...
tendremos un boton ("registrar") que al igual que en la web q pasaste (ciudadenlinea.net). Este botón activará/desactivará la posibilidad de que en el click sobre el mapa, se muestre un formulario.
Una variable booleana nos ayudará a monitorear cuando el boton registro haya sido cliqueado.
Previamente a entrar más en detalles con el click y el formulario, necesitamos mediante un listener decirle al mapa que cuando hagamos click sobre él nos muestre el formulario (siempre y cuando nuestra variable booleana esté activa, sino el mapa debería reaccionar normalmente ante los clicks).
supongamos ya hemos cliqueado el boton registro, entonces nuestra variable booleana ya esta "activa", si ya hicimos la parte del listener todo deberá ir normalmente (no olvidar que de por sí el evento que es despachado desde el mapa al cliquear, ya tiene una propiedad latitud/longitud que se utilizará para ubicar nuestro contenido).
Vamos al código...
Lo primero sería armar un formulario con estos elementos.
- titulo del sitio
- una imagen a guardar
- las coordenadas del punto donde cliqueó
- etc (todos los otros datos que te interesen)
Este formulario sería un movieclip siempre oculto (al que denominaremos a efectos simplemente didácticos, "mi_form_mc").
Código ActionScript :
public var mi_form_mc:FormularioRegistroMapa;
Como ves, declaré el clip formulario con el nombre "mi_form_mc" y dije que iba a hacer del tipo "FormularioRegistroMapa" (esta es una clase nueva que crearás donde pondrás la lógica del guardar los datos desde el formulario a la base).
Bien, ahora que ya tenemos el formulario creado y oculto... lo que necesitamos es determinar en qué momento se muestra.
Para ello, siguiendo nuestra lógica (y el código que ya tienes escrito) primero declararemos la propiedad:
Código ActionScript :
private var mostrar_formulario_con_click:Boolean = false;
ahora, agregaremos lo siguiente a tu método mapaClic (el cual ya tienes creado):
Código ActionScript :
if(mostrar_formulario_con_click){
mi_form_mc.setValuesClick(e.latLng);
mi_form_mc.visible = true;
mostrar_formulario_con_click = false;
}como puedes ver en el código, uso el método (del que no habíamos hablado) "setValuesClick" del objeto "mi_form_mc", la idea es que este método te permita guardar los datos de latitud/longitud sobre los que acaba de cliquear (por eso le paso como parámetro "e.latLng") el cual junto con el resto de los campos del formulario, guardarás en la base.
finalmente como ya hice click, "mostrar_formulario_con_click" vuelve a estar false, para así dejar al mapa con el funcionamiento de click normal.
Saludos!