Shared Object

Hoy dia vamos a tocar una acción muy interesante, los llamados SHARED OBJECTS. Los shared objects son las "cookies" del Flash, vale decir que sirven para almacenar información acerca de la maquina donde esta corriendo el player, obviamente será información que nosotros querramos obtener y previamente definir.

Para poder manejar los shared objects (una clase propia de flash) cuenta con

4 métodos: SharedObject.clear,SharedObject.flush(), SharedObject.getLocal() y SharedObject.getSize().

1 Propiedad: SharedObject.data.

y 1 controlador de eventos: SharedObject.onStatus.
Tocaremos cada uno de ellos con mayor detalle en el transcurso del tutorial.

¿Que ventajas podemos obtener de los Shared Objects?

-Son de fácil manejo.

-Pueden alojar diversos tipos de datos: number , string , boolean , undefined , null , array , and object (clases propias de XML y Date ). Otras clases built-in y objetos como MovieClip y Function NO pueden ser alojadas en un SharedObject .

-La capacidad de almacenaje puede ser configurable.

-El acceso desde Flash se hace de manera directa.

-Pueden ser usadas en aplicaciones que no corran en el navegador.

Las desventajas están referidas a que solo flash puede leerlas.

Una vez tomando en cuenta todo esto podemos empezar a jugar con nuestro primer ShO. Para crear un ShO se usa el método:

mi_so=SharedObjetc.getLocal(nombre_archivo,ruta)//donde ruta es la ruta a la cual queremos acceder.
Para poder ESCRIBIR en el ShO se usa SharedObject.data.algo, donde "algo" es la variable que queremos alojar.

_so es el sufijo oficial para activar los codes hints de macromedia (esto quiere decir que cualquier objeto con el sufijo _so hará salir los métodos de los ShO en el panel de acciones).

ventana de sufijo de los Shared Objects

Empecemos entonces con nuestro primer ejemplo. Tomar el nombre de usuario desde un campo de texto y mostrarlo en un cuadro de texto.

mi_so=SharedObject.getLocal("file_usuario");

con esto hemos creado el archivo "file_usuario.sol" (.sol es la terminacion de los archivos ShO) PERO hay un detalle con el método getLocal, cuando se usa verifica si es que ya existe el archivo, si es que no existe entonces lo crea. Entonces como el ShO está pensado para ver si es que el usuario ya existe lo que hará a continuación es ver si es que ya existe el archivo, si no entonces se escriben las variables.

Como primer paso creamos un keyframe vacio en el primer frame de la película. Sobre èl la etiqueta "reloaded". En el segundo keyframe colocamos un botón con nombre de instancia "boton" y el campo de texto, con nombre de instancia "nombre", el tercer keyframe tiene el campo de texto llamado "n_usuario", en este tercer keyframe colocamos las siguientes acciones:

n_usuario.text="Bienvenido: "+user

Ahora las acciones importantes van en el frame 2, donde esta el boton. Empezamos con las acciones:

//Creamos la instancia del ShO:
mi_so = SharedObject.getLocal("usuario130");
if(mi_so.data.nombre_usuario == undefined){//si es que la variable "nombre_usuario" aún NO existe o no está definida...
//El botón tiene su labor..
boton.onRelease=function(){
//alojando en la variable "nombre_usuario" del ShO el contenido del campo de texto
mi_so.data.nombre_usuario=_root.nombre.text;
//por si las dudas obligamos al swf a GRABAR los datos
mi_so.flush();
//...luego, para no tener que cerrar el swf y leer de manera correcta el contenido del ShO, nos vamos al keyframe "reloaded"
gotoAndPlay("reloaded")
}
//mientras no se haga click en el botón permanecemos parados
stop()
}else{
//si es que el ShO ya contiene su variable "nombre_usuario" podemos ir al keyFrame "saludo"
gotoAndStop("saludo")
//alojamos el contenido del ShO en una variable
var user=mi_so.data.nombre_usuario;
trace("ya esta")
}

Como ves, hasta ahora sencillo. Solo hemos usado 3 métodos básicos:GETLOCAL, DATA y FLUSH.

Baja el archivo ahora

Manuel Jesús Vejarano::: Derechos Reservados