Hola, elchininet,
Si, estos tutoriales los he revisado y es lo que estoy tratando de modificar un poco. Lo que queria hacer es que desde un swf pueda escribir texto, enviarlo presionando un boton mediante LocalConnection a otro swf. Tambien queria que se cargara y guardara el texto en el segundo swf para lo que incluiría en el boton de envio la función para que cargara y guardara en el segundo swf. De esta manera si cerrara y abriera el swf cargaria el texto que guardo anteriormente.
Voy intentando montarlo poco a poco pero aun no me funciona:
En el swf emisor tengo en la linea principal:
- Caja de txt dinamico con var:envio
- Codigo con LocalConnetion
- Boton con envio del LocalConnection
El Codigo con LocalConnetion
Código :
// defino el objeto que va a recibir los datos
var recepcion_lc:LocalConnection = new LocalConnection();
// defino la función que se ejecuta cuando recibo datos
recepcion_lc.verTexto = function(arg) {
// muestro en la caja de texto los datos recibidos
_root.clip1.recepcion=arg;
};
recepcion_lc.cargarTexto = function() {
// cargo en la caja de texto los datos recibidos
_root.clip1.recepcion.text = cargarDatos("nombre");
};
recepcion_lc.guardarTexto = function() {
// guardo en la caja de texto los datos recibidos
_root.clip1.recepcion.text = guardarDatos(recepcion.text);
};
stop();
El code del Boton con envio del LocalConnection
Código :
on (release) {
// defino el objeto que envia los datos
var envio_lc:LocalConnection = new LocalConnection();
// mando los datos a la otra peli por el canal "flujo",
// le digo al objeto receptor que ejecute la funcion verTexto,
// le digo al objeto receptor que ejecute la funcion cargarTexto,
// // le digo al objeto receptor que ejecute la funcion guardarTexto,
envio_lc.send("flujo", "verTexto", _root.envio);
envio_lc.send("flujo", "cargarTexto", _root.envio);
envio_lc.send("flujo", "guardarTexto", _root.envio);
}
En el swf receptor tengo en la linea principal:
- Attach del clip1 y recepcion de LocalConnection
Código :
attachMovie("clip1", "clip1", 1);
// defino el objeto que va a recibir los datos
var recepcion_lc:LocalConnection = new LocalConnection();
// defino la función que se ejecuta cuando recibo datos
recepcion_lc.verTexto = function(arg) {
// muestro en la caja de texto los datos recibidos
_root.clip1.recepcion=arg;
};
recepcion_lc.cargarTexto = function() {
// cargo en la caja de texto los datos recibidos
_root.clip1.recepcion.text = cargarDatos("nombre");
};
recepcion_lc.guardarTexto = function() {
// muestro en la caja de texto los datos recibidos
_root.clip1.recepcion.text = guardarDatos(recepcion.text);
};
// dejo el objeto listo para recibir datos por el canal "flujo1_2"
recepcion_lc.connect("flujo");
stop();
y en la biblioteca el clip1 con caja txt dinamico var:recepcion y code del SharedObjects:
Código :
//Esta función recibe por parametro el nombre y el correo a guardar
function guardarDatos(nombre:String) {
//Crea variable de tipo SharedObject que guarda datos en disco usuario
var disco_so:SharedObject;
//El metodo "getLocal" del objeto "SharedObject" me devuelve
//algo asi como un archivo que le pase por parametro, en este
//caso, el archivo se llama "datos", si no existe, lo crea
disco_so = SharedObject.getLocal("datos");
//En "data", se asigna variable "elNombre"
disco_so.data.elNombre = nombre;
//SharedObject guarda en el disco los datos
disco_so.flush();
}
//La función de cargar datos me devolvera el dato nombre
function cargarDatos(dato) {
var disco_so:SharedObject;
//abre el archivo "datos" y carga toda la información contenida en ese archivo
disco_so = SharedObject.getLocal("datos");
//Si el parametro que llego fue "nombre"....
if (dato == "nombre") {
//Retornara el nombre que guardamos en el archivo
return disco_so.data.elNombre;
}
}
Intente seguir el tutorial lo mas fielmente posible pero creo que la parte del envio a traves del boton no está bien escrita:
Código :
envio_lc.send("flujo", "verTexto", _root.envio);
envio_lc.send("flujo", "cargarTexto", _root.envio);
envio_lc.send("flujo", "guardarTexto", _root.envio);
o tal vez sea algo más...tambien veo que send solo almacena 40kb, no podria enviar un texto largo?
si se te ocurre algo, agradecido es...