AS3 SharedObjects
SharedObjects (también conocidos como SO u Objetos Compartidos en español) son las Cookies de Flash. Las mismas nos permiten almacenar información limitada de datos en el equipo de un usuario, o en un servidor. Veremos que si bien pocas veces hacemos uso de ellas, son de una enorme utilidad y repercuten de manera positiva en la experiencia de usuario (por más de que a nivel conciente no lo perciban).
Flash utilisa los SO de manera local y de manera remota. En este post abarcaremos la manera local de trabajar con ellas.
Esta posibilidad de almacenar info en el sistema del usuario, pone a nuestra disposición una enorme gama de posibles soluciones que si bien no siempre son determinantes para el funcionamiento de un desarrollo, indudablemente mejoran la experiencia:
¿Alguna vez notaste que el reproductor de videos de Youtube conserva siempre el último volumen que seteaste, por más de que cierres el sitio y vuelvas?
Al igual que Youtube, muchos players hacen esto, y la manera de lograrlo es justamente por medio del uso de SharedObjects. La pregunta anterior me llena de curiosidad. La hago con bastante frecuencia, y salvo pocos desarrolladores, la mayoría no sabe que la web de videos hace eso con el volumen. Quizas a muchos les parezca un dato menor, o incluso imperceptible; a nivel consciente no estamos pendiente del volumen, pero brindar estas pequeñas soluciones, indudablemente mejoran la experiencia de navegación y la interacción con las aplicaciones; nos facilitan su manejo y por sobre todas las cosas, muchas veces logran optimizar nuestros tiempos y focalizarlo en lo que realmente nos interesa.
Pero el alcance de los SO es mucho más potente y les podemos dar los más diversos usos; cuando comiencen a pensar en posibles soluciones, seguramente le vengan a la cabeza muchísimas ideas y posibilidades. Sí, prácticamente todas ellas, son válidas.
Veamos como usarlas en Flash:
En primer lugar, debemos declarar una instancia de la clase SharedObject:
mySharedObject = SharedObject.getLocal(”as3hispano”);
Por medio del método getLocal() indicamos el nombre que llevará nuestro SO y el cual utilizaremos tanto para leer como para guardar valores.
Cómo almacenar valores:
Una vez que contamos con nuestra instancia, a la propiedad data de la misma, podemos asignarle los atributos que queremos almacenar y luego leer. Suponiendo que queramos almacenar un valor numerico, lo hacemos del siguiente modo:
mySharedObject.data.volumeSO = 0.7;
La clase SharedObject cuenta con el método flush, por medio del cual podemos dar la orden de que se grabe el valor inediatamente. En caso de no utilizar el método flush, el SO se guardará cuando se finalice la sesión (cuando se cierre el SWF o cuando se utilicen los métodos close() o clear() de la clase SharedObject):
var flushIt:String = mySharedObject.flush();
Cómo leer valores:
También accedemos a los valores almacenados por medio de la propiedad data. Lógicamente, debemos haber declarado una instancia de la clase SharedObject:
var value:Number = mySharedObject.data.volumeSO;
trace(value);
En caso de que no exista el atributo que estamos tratando de leer del equipo del usuario, nos devolverá null.
La clase SharedObject cuenta con varios métodos, propiedades y eventos que ayudan a trabajar con ellos gran flexibilidad. Su uso es realmente sencillo e intuitivo, su implementación es cuestión de pocos minutos y el aporte que hacen a la experiencia de navegación es realmente significativo.
Por otro lado, al implementar cookies con PHP, tenemos hasta 4Kb para almacenar información. Los Objetos Compartidos de Flash nos proveen de 100 kb por defecto (pudiéndose alternar entre otros valores; 1mb, 10mb, ilimitado, 10 kb y ninguno).
Podemos configurar estos parámetros desde http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html
El uso de los SO puede ser de lo más variado. Aquí les dejo un pequeño ejemplo implementando el slider genérico que se utilizó en un post anterior.
Comments
Leave a Reply

