Hola a todos, dejen que les exponga una de las clases que suelen dar mucho mucho juego en nuestras aplicaciones Flex & Air. Para este caso, me he dirijido a la documentación que adobe nos proporciona a todos. Se trata de la clase SharedObject y la importancia de usarla en las aplicaciones RIA.
Pues bien, la clase SharedObject se emplea para leer y almacenar cantidades limitadas de datos en el equipo de un usuario. Los objetos compartidos permiten que se compartan datos en tiempo real entre objetos persistentes en el equipo del usuario. Los objetos compartidos locales son similares a las cookies del navegador.
A continuación se muestran tres usos posibles de los objetos compartidos:
* Un juego que almacena la puntuación máxima de un usuario. El juego puede proporcionar datos personalizados a los usuarios, como el nombre de usuario y la máxima puntuación, sin dedicar espacio de almacenamiento del servidor.
* Una aplicación de listín telefónico que funcione en línea y sin conexión. El listín, como una aplicación de proyector, contendría una caché de datos locales con una lista de nombres y números de teléfono introducidos por el usuario. Cuando hubiera una conexión a Internet disponible, la aplicación recuperaría información actualizada de un servidor. En caso contrario, la aplicación utilizaría los últimos datos guardados en objetos compartidos.
* Preferencias de usuario o datos de control para un sitio Web complejo, como un registro de los artículos que ha leído un usuario en un sitio de noticias. El registro de esta información le permitiría mostrar de forma distinta los artículos que ya ha leído y los que no ha leído. Si se almacena esta información en el equipo del usuario, se reduce la carga del servidor.
Los objetos compartidos locales mantienen la persistencia local. Por ejemplo, puede llamar a SharedObject.getLocal() para crear un objeto compartido que contenga la máxima puntuación obtenida en un juego. Dado que el objeto compartido es persistente localmente, Flash guarda sus atributos de datos en el equipo del usuario cuando se cierra el juego. La próxima vez que se abra el juego, aparecerá la máxima puntuación de la sesión anterior. También se pueden definir las propiedades del objeto compartido como null antes de cerrar el juego. De esta forma, la próxima vez que se ejecute el archivo SWF, el juego se abrirá sin mostrar la puntuación anterior.
Para crear un objeto local compartido, utilice la siguiente sintaxis:
var so:SharedObject = SharedObject.getLocal(“userHighScore”);
so.data.highScore = new Number();
so.flush();
En este ejemplo, el objeto compartido está alineado o copiado en el disco de forma explícita. Cuando se cierra una aplicación, los objetos compartidos se alinean automáticamente; sin embargo, aquí se muestran para demostrar el paso de escribir los datos en un disco.
Consideraciones relativas al espacio del disco local: Los objetos compartidos locales pueden ser muy útiles, pero presentan algunas limitaciones que debe considerar al diseñar su aplicación. En ocasiones es posible que los archivos SWF no puedan escribir objetos compartidos locales y algunas veces los datos almacenados en objetos compartidos locales deben eliminarse sin que el usuario lo advierta. Los usuarios de Flash Player pueden gestionar el espacio de disco disponible para dominios individuales o para todos los dominios. Si los usuarios reducen el espacio en disco disponible, es posible que se eliminen algunos objetos compartidos locales. Los usuarios de Flash Player tienen también controles de confidencialidad para impedir a dominios de terceros (distintos de los de la barra de direcciones del navegador) que lean o escriban objetos compartidos locales.

by Dinamarco
14 feb 2012 at 04:51
Hola, estoy URGIDO de ayuda:
Un profe me envia como trabajo de examen hacer una especie de “miniwikipedia” en flash cs5 (usando el Actionscript 3.0), el problema que tengo es que no se como o que función utilizar para lograr que cuando el programa corra (el archivo swf) se puede modificar y guardar un texto. El texto estará establecido con 20 recetas de postres el profe se supone que podrá modificar, agregar y guardar esa informacion… ¿como hago eso? que funcion uso? ¿sharedobject es la precisa?
by Francisco
14 feb 2012 at 07:24
Bienvenido Dinamarco,
Te explico, SharedObject está orientado a utilizarse para almacenar datos de tipo variable y es común utilizarlo para asuntos de configuración, como puede ser la selección de idioma de un usuario, el período de refresco de los datos, no se si me explico con mucha claridad.
Para tu caso yo te aconsejaría usar un Webservice con php + amfphp conectando a una base de datos MySql, ó en su defecto usar “SQLite”, una base de datos almacenada en fichero junto a tu aplicación Flex. Esto último déjame que le eche un vistazo porque casi siempre lo he usado con Adobe AIR, incluso puedo escribir un artículo sobre ello con ejemplo. Espero haberte sido un poco de ayunda.
Un saludo Dinamarco, y suerte en tu proyecto.