Como guardar datos de forma permanente en Flash (ActionScript 3)
Guardar datos, que permanezcan utilizables incluso cuando se cierra Flash es algo realmente sencillo. Es una buena técnica para guardar los progresos en los videojuegos, puntos, niveles, etc.
Para guardar datos debemos de usar el objeto: SharedObject (más info), esto objeto, entre otras cosas, nos permite guardar variables en disco, para luego poder leerlas y modificarlas cada vez que lo necesitemos.
La forma de guardar los datos
// Importamos la libreria
import flash.net.SharedObject;// Iniciamos nuestra variable tipo SharedObject
var so:SharedObject;// Iniciamos nuestro fichero de datos
so = SharedObject.getLocal("/ficherodondeguardamoslosdatos");// Añadimos un valor (por ejemplo la puntuación)
so.data.puntuacion = miPuntuacionJuego;// Guardamos los datos
so.flush();
// Importamos la libreria
import flash.net.SharedObject;// Iniciamos nuestra variable tipo SharedObject
var so:SharedObject;// Iniciamos nuestro fichero de datos
so = SharedObject.getLocal("/ficherodondeguardamoslosdatos");// Recuperamos un valor (por ejemplo la puntuación)
if (so.data.puntuacion>0) { // Hay que asegurarse que los datos guardados tienen información válidamiPuntuacionJuego = so.data.puntuacion;}
¿Fué interesante? Por qué no dejas un comentario abajo y continúas la conversación.
Comentarios
Hola,
Soy nuevo en esto de programar en actionscript y he copiado y pegado el ejemplo para guardar los datos y no aparece el archivo de texto por ningún sitio. Mi intención es aplicar el ejemplo a una aplicación para móvil. Gracias.
Hola, abusando de tu amabilidad. He puesto dos cajas de texto y dos botones y el siguiente código
btnGrabar.addEventListener(MouseEvent.CLICK, grabar);
function grabar(event:MouseEvent):void{
// Importamos la libreria
import flash.net.SharedObject;
// Iniciamos nuestra variable tipo SharedObject
var so:SharedObject;
// Iniciamos nuestro fichero de datos
so = SharedObject.getLocal(”/texto.txt”);
// Añadimos un valor (por ejemplo la puntuación)
so.data.puntuacion = txtGrabar.text;
// Guardamos los datos
so.flush();
}
btnLeer.addEventListener(MouseEvent.CLICK, leer);
function leer(event:MouseEvent):void{
// Importamos la libreria
import flash.net.SharedObject;
// Iniciamos nuestra variable tipo SharedObject
var so:SharedObject;
// Iniciamos nuestro fichero de datos
so = SharedObject.getLocal(”/texto.txt”);
// Recuperamos un valor (por ejemplo la puntuación)
if (so.data.puntuacion>0) { // Hay que asegurarse que los datos guardados tienen información válida
txtLeer.text = so.data.puntuacion;
}
}
No funciona, ¿podrías decirme por qué?.
Muchas gracias.
Hola, ya lo había intentado, pero sigue sin funcionar. Uso ActionScript 3. No me da ningún error simplemente no hace nada. Introduzco un texto en txtGrabar y pulso el botón guardar, después pulso el botón leer y en la caja de texto txtleer no aparece nada. Los botones he comprobado que funcionan y las propiedades de txtGrabar, texto clásico e introducción de texto y de txtLeer, texto clásico y texto dinámico. Utilizo windows 7 64 bits.
Un saludo y muchas gracias.
ya habia leido algo de SharedObject pero quisiera saber si este codigo es para as 2 o para as 3, solo se manejar el as 2
pregunta: donde queda guardado este archivo, es que la aplicacion que quiero hacer debe poder ser respaldada de manera periodica por el usuario final el cual e supone tiene pocos conocimientos en el manejo del pc….
Miuy interesante.
En mi caso, lo necesito para hacer una presentación que unos amigos sólo puedan ver una vez. Adaptando el programa, ha funcionado muy bien. Pero hay un problema:
Si, después de verlo, corto y pego el programa en otro directorio, la variable se resetea y no sirve… alguna idea de cómo evitar eso?







(3 votos, media: 4 de 5)
Gracias por el post, está interesante investigaré mas de sharedobject, andaba buscando eso.