Existe la posibilidad de comunicarnos entre distintos swf usando mdm zinc mediante la clase mdm.Forms. Esto nos puede ayudar mucho a no cargar tantos nuestros swf en las aplicaciones que desarrollemos. Así podemos tener por ejemplo en un swf, la carga de clientes con sus detalles y en otro nuestra aplicación principal. Así mientras trabajamos en la aplicación, cuando debemos seleccionar el cliente, se nosa cargará el swf en otra "Ventana" (Formulario) y no perderemos la ventana principal.
Voy a mostraros un ejemplo muy muy sencillo en el que lo podáis ver fácilmente. He creado un swf que tiene un input text y un boton que al pulsarlo se escribe en un textarea lo que hemos puesto en el input text.
Y luego tenemos otro botón que hace visible el segundo formulario:
Luego en el segundo swf tenemos solamente dos botones, uno que llama a la función escribir() que está en el primer swf, y otro botón que nos meneará el primer formulario.
Para poder llamar a la función de otro swf usamos la función mdm.Forms.NombreFormulario.callFunction(functionName:String, parametersString:String, delimiter:String), de esta manera desde cualquier parte de nuestra aplicación podremos llamar a las funciones declaradas en cualquier swf.
2 Responses to Comunicar varios swf mediante mdm.Forms
Lets
Abril 25th, 2009 at 15:49
Hola one..
dime si sabes como puedo hacer para llamar otros swf con loadmovie a un clip (ventana) desde mi swf base.. sucede que al pasarlo a un exe con zinc no llama ningun swf externo.. he probado dos codigos y ninguno ha funcionado.. sabes por que?
los codigos que probe son..
on (rollOver) {
mdm.Flash.loadMovie(“carpeta1/juego1.swf”, “_root.ventana”);
}
on (rollOver) {
loadMovie(“carpeta1/juego1.swf”, “_root.ventana”);
}
Keiner
Mayo 8th, 2010 at 1:30
Holaa!! Tengo un problema con los parámetros en la llamada de la función. la estructura que se usa en mdm es la siguiente:
mdm.Forms.formName.callFunction(functionName:String, parametersString:String, delimiter:String);
Ej:
mdm.Forms.MainForm.callFunction(“myFunction”, “abc|123″, “|”);
donde parametro1=abc y parametro2=123. Pero ambos forman parte de una cadena de caracteres, y yo quiero enviar el valor de 3 variables. ¿Cómo hago para enviar variables?
Alguien tiene una solución a mi problema? Gracias