Comunidad de diseño web y desarrollo en internet

Recordando "Skip Intro" en Flash por SharedObjects

Introducción

El Objeto SharedObject, es un objeto que nos permite grabar datos de quien ingresa a nuestro sitio en su computadora de forma local, sería algo similar a las famosas cookies pero personalizadas en el mismo Flash.

No es recomendable usar este objeto para aplicaciones en las cuales se requiere mucha seguridad, porque justamente no es un objeto muy seguro que digamos.

Por ejemplo no es recomendable grabar en este objeto nombres de usuarios ni contraseñas porque pueden ser leídos muy fácilmente con un simple editor de texto, pero para grabar valores sencillos como por ejemplo si un visitante de nuestro sitio vio o no nuestra presentación o bien guardar coordenadas de posiciones de objetos dentro de nuestra pagina o también grabar configuraciones de colores, resulta de mucha utilidad.

Para todos estos casos resulta verdaderamente muy útil, pero no es recomendable como ya comentaba para aplicaciones que requieran de seguridad, o mejor dicho datos personales de los usuarios, todo depende de la información que manejemos en nuestro sitio.

Bien veamos un ejemplo sencillo de cómo trabajar con este objeto, ustedes habrán notado mas de una vez a la hora de visitar un sitio en que debemos de ver la presentación cada vez que ingresamos o al menos debemos darle click al botón de “Skip intro” o bien “Saltar presentación” y muchas veces resulta realmente molesto y tedioso este procedimiento.

El Objeto SharedObject lo que nos permite justamente es verificar si la persona que ingresa ya vio nuestra presentación o no, veamos un ejemplo.

Bien abra entonces el inspector de código y en el primer fotograma de su aplicación comenzaremos a trabajar.

Creando nuestro código

Vamos a crear un Objeto local denominado "MyCookie" y lo guardaremos en una variable llamada en este caso "newContenedor".

newContenedor = SharedObject.getLocal("MyCookie");
Luego debemos de grabar valores en este objeto para luego poder leerlo, pero primero debemos de verificar si ya esta creado o no el objeto entonces verificamos si la variable “presentación” esta definida o no dentro del objeto.
if (newContenedor.data.presentacion == undefined) {

}

Entonces si se cumple esta condición quiere decir que no se ha creado la variable y por ende no ha visto la presentación hasta ahora, entonces le indicamos que arranque la presentación y que grabe los valores que yo quiera en el objeto.

Ahora el visitante ya vio nuestra presentación entonces cuando ingrese la próxima vez debería de cumplirse la condición esta.
if (newContenedor.data.presentacion == undefined) {
contenedor = SharedObject.getLocal("MyCookie");
contenedor.data.presentacion = "si";
contenedor.data.fechaDeIngreso = new Date(Date.UTC());
contenedor.flush();
delete contenedor;
}
Aquí en la segunda línea grabamos en una variable diferente de "newContenedor" que definimos en un principio a la cuál llamaremos "contenedor"
contenedor = SharedObject.getLocal("MyCookie");
Luego vamos a grabar una variable dentro de este objeto llamada “presentación” para luego poder leerla y también por ejemplo el día en que entro al nuestro sitio
contenedor.data.presentacion = "si";
contenedor.data.fechaDeIngreso = new Date(Date.UTC());
Bien ya tenemos nuestra variable dentro del objeto ahora le decimos que publique nuestras variables.
contenedor.flush();
y a continuación le decimos que borre el objeto "contenedor"
delete contenedor;

Como vimos en el principio de nuestro código tenemos los valores de contenedor en un nuevo objeto llamado "newContenedor", así que al borrar "contenedor", no hay problemas porque tenemos nuestros valores en un nuevo objeto.

Bien ahora como en el caso contrario que todo esta condición no se cumpla, que quiere decir que ya vio nuestra presentación, entonces lo enviamos directamente al “home” de nuestro sitio.

 Vimos como crear una cookie mediante el objeto SharedObject, ahora si lo que queremos es limpiar nuestra cookie debemos de usar el argumento “clear” y para borrarla el “delete”

Limpiar Cookie: newContenedor.clear();

Borrar Cookie: newContenedor.delete()

Para visualizar nuestro objeto con todo el contenido que tenemos grabado vamos a crear una función a la cual le vamos a pasar como parámetro el objeto “newContenedor”

Y Dentro de nuestra función vamos a crear un for (bucle ) para recorrer todo el objeto y hacer un trace de todas sus variables grabadas allí.

visualizarObjetoShared = function (obj) {
for (var o in obj) {
trace(o+" <=========== > "+obj[o]);
}
};
Y luego una vez creada la ejecutamos
visualizarObjetoShared(newContenedor.data);
Veamos entonces nuestro código completo:

Código completo

newContenedor = SharedObject.getLocal("MyCookie");
if (newContenedor.data.presentacion == undefined) {
contenedor = SharedObject.getLocal("MyCookie");
contenedor.data.presentacion = "si";
contenedor.data.fechaDeIngreso = new Date(Date.UTC());
contenedor.flush();
delete contenedor;
} else {
gotoAndPlay("home");
} visualizarObjetoShared = function (obj) { for (var o in obj) { trace(o+" [ =========== ] "+obj[o]); } };
visualizarObjetoShared(newContenedor.data);

Dario Quiroga
darioquiroga@webserver.com.ar

¿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.

Descargar Archivo

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?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate