Macromedia ha cambiado muchas veces el rumbo de Flash, iniciando desde una robusta aplicación destinada a la animación vectorial (Y en consecuencia, liviana) para la web hasta llegar a todo un entorno multimedia de integración cliente/servidor, bases de datos, con soporte multiusuario y capacidades ActionScript que han desplazado a Java del lado del cliente y lo han replegado a aplicaciones de mas alto poder.
Entre las tantas capacidades y necesidades actuales nos encontramos con escribir datos en el disco duro del usuario, util cuando queremos recordar a nuestro usuario, o cuando queremos que algun dato sea persistente, Flash tambien ha llenado esta expectativa por medio de los SharedObjects.
Fundamentos basicos de SharedObjects
Para nuestro ejemplo actual crearemos una interfaz que conste de dos campos de texto, un boton para grabar los datos y otro para cargarlos , asi:- Input Text, nombre de instancia "nombre_txt"
- Input Text, nombre de instancia "correo_txt"
- Boton "Guardar"
- Boton "Cargar"
Codigo en el boton "GUARDAR"
on (release) { //Invoco la función (Que creare mas tarde) guardarDatos //pasandole por parametro el nombre y el correo guardarDatos(nombre_txt.text, correo_txt.text); }
on (release) { //La función cargarDatos recibe por parametro el dato a devolver, //lo entenderan mejor al ver las funciones nombre_txt.text = cargarDatos("nombre"); correo_txt.text = cargarDatos("correo"); }
//Esta función recibe por parametro el nombre y el correo a guardar function guardarDatos(nombre:String, correo:String) { //Creamos una nueva variable de tipo SharedObject, esta sera la //que nos guarde datos en el disco del 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"); //Los SharedObjects tiene una colección llamada "data", a esta //le asignamos todas las variables que vamos a guardar en el //archivo, en mi caso les puse "elNombre" y "elCorreo" //Les asigno los datos que llegaron como parametro de la función disco_so.data.elNombre = nombre; disco_so.data.elCorreo = correo; //Por ultimo, esa instrucción del SharedObject guarda en el disco //los datos disco_so.flush(); } //La función de cargar datos me devolvera uno de los datos que le pase //por parametro, tenemos dos, un nombre y un correo, asi que dependiendo //de lo que le pidamos lo devolvera function cargarDatos(dato) { //Estas 2 lineas son iguales que en la anterior función var disco_so:SharedObject; //Pero aqui, cuando le pedimos que sabra el archivo "datos", //automaticamente 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; //Si no, y si en cambio es "correo" } else if (dato == "correo") { //Retornara el correo guardado return disco_so.data.elCorreo; } }
Conclusiones
El objeto SharedObject viene a tapar un gran vacio (Que antes se llenaba con algunos "hacks") en Flash, que era el volcado a disco de los datos que ActionScript manejaba en memoria; en las colecciones "data" ustedes pueden, no solo guardar variables de texto, sino tambien volcar todo un objeto, un Array o una clase; experimentar es la base de la innovación y las nuevas tecnicas.Para una referencia mas profunda del objeto SharedObject pueden ir a los livedocs del objeto en Macromedia.
Y ya saben, cualquier duda pueden redirigirla al foro.
Freddie® Cristalab
[email protected]
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Publica tu comentario
El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro
Entra al foro y participa en la discusión
o puedes...
¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?
Inicia sesión
¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?
Registrate